Я не нашел способ описать все мои коды ответов, и я вижу только коды по умолчанию. У меня много ответов, и я хочу их описать. Также меня интересует описание различных запросов, которые вызывают ошибку 400 (например, запрос с такими данными вернет это сообщение и т. Д.), Должно ли это быть описано в документации API?
Apigility без проблем работает вместе с Проблема ZF Api для обработки ошибок.
Создать ответ об ошибке из контроллера или слушателя так же просто, как:
use ZF\ApiProblem\ApiProblem;
...
return new ApiProblem(500, "My Internal Server Error");
Названия статусов для общих ошибок устанавливаются здесь, в классе.
Желательно придерживаться действительного http коды ошибок это подходит к проблеме, которая возникает, но вы, конечно, можете настроить заголовок. Вы можете вернуть свой ApiProblem
непосредственно от ваших контроллеров и слушателей, Apigility
будет правильно обращаться с error
и вернуть оказанный json
ответ с Content-Type
заголовки установлены в application/problem+json
,
не уверен, что это все еще актуально, но вы могли бы использовать параметр конструктора additional
в объекте ответа Api для настройки ваших ответов;
return new ApiProblem(
Response::STATUS_CODE_500,
'Internal Server Error',
null,
'This is the title',
[
'specific' => 'entry',
'more_problem_details' => [
'custom_code' => 'custom_code_value',
'custom_message' => 'custom_message_text',
],
]
);
Ответ будет выглядеть так:
{
"specific": "entry",
"more_problem_details": {
"custom_code": "custom_code_value",
"custom_message": "custom_message_text"},
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "This is the title",
"status": 500,
"detail": "Internal Server Error"}
Проверьте это для более подробной информации:
https://docs.zendframework.com/zend-problem-details/response/