Я создал базовый c Laravel REST API, который будет обслуживать некоторые JavaScript приложения, использующие ax ios для выполнения запросов.
Мое приложение использует базовый контроллер для обеспечения все ответы отправляются в одном и том же формате:
class BaseController extends Controller
{
/**
* success response method.
*
* @param $result
* @param $message
*
* @return JsonResponse
*/
public function sendResponse($result, $message)
{
$response = [
'success' => true,
'data' => $result,
'message' => $message,
];
return response()->json($response, 200);
}
/**
* return error response.
*
* @param $error
* @param array $errorMessages
* @param int $code
*
* @return JsonResponse
*/
public function sendError($error, $errorMessages = [], $code = 200)
{
$response = [
'success' => false,
'message' => $error,
];
if (!empty($errorMessages)) {
$response['data'] = $errorMessages;
}
return response()->json($response, $code);
}
}
Когда я получаю ответ из URL-адреса API и записываю его в консоль, я получаю следующий вывод:
![enter image description here](https://i.stack.imgur.com/xAEr1.png)
В настоящее время мой объект ответа содержит свой собственный объект данных, который затем содержит другой объект данных. В результате для доступа к данным мне нужно использовать response.data.data.
Мне интересно, действительно ли это правильный способ сделать это. Поскольку соглашение об именах response.data.data, похоже, не очень чистый способ сделать это. Я видел пару руководств в Интернете, где это было сделано таким образом, но мне интересно, есть ли какие-то обычно соблюдаемые соглашения, которые я пропускаю. Возможно, это правильно, но я просто хотел получить представление от более опытных программистов.