ApiGilty の RPC サービスを使用してデータを返しています。正しいプロセスが 100% 確実ではないため、これがデータをフォーマットして返す正しい方法であるかどうかを再確認したいと思います。
編集:明確にするために、データは多くのエンティティから構築されています:
main
main_extra
main_data
main_data_days
main_data_tiers
メインをヒットしてすべてのサブエンティティを取得する方法はありますか? 現在、データをゼロから構築し、配列を返しています。
私のRPCコントローラーは次のとおりです。
use My\Data\Controller\DataInterface;
use Zend\Mvc\Controller\AbstractActionController;
use ZF\ContentNegotiation\ViewModel;
class MyDataController extends AbstractActionController
{
const GENERAL_ERROR = 'api.rpc.my-data.my-data-controller';
public function __construct(
MyDataInterface $myData
)
{
$this->myData = $myData;
}
public function myDataAction()
{
$my_id = (int) $this->params()->fromRoute('my_id', 0);
if ($my_id == 0)
{
$data = $this->myData->getMyData();
} else
{
$data = $this->myData->getMyData($my_id);
}
$result = new ViewModel(array(
'data' => $data
));
return $result;
}
}
データを作成するために、次のようなことをしています。
public function getMyData( $my_id = null )
{
$returnArray = [];
$array1 = [
'key_1' => [1,2,3,4],
'key_2' => '123',
'key_3' => ['a','b','c']
];
$array2 = [
'key_1' => [1,2,3,4,5,6,7,8],
'key_2' => '123456',
'key_3' => ['a','b','c','d']
];
if ($my_id == 1) {
$array3 = ['some','or','other'];
} else {$array3 = []; }
$final_array = [
'data1' => $array1,
'data2' => $array2,
'data3' => $array3
];
$returnArray['data'] = $final_array;
$returnArray['success'] = 'true';
$returnArray['reason'] = '';
return $returnArray;
}
郵便配達員に確認すると、次のようになります。
これを参照するものが何もないので、私の質問は単純です。これについて正しい方法で行ったことがありますか?また、これはリターン コードをどのようにフォーマットする必要がありますか?
ありがとう!