Как расширить коды ошибок в документации по Apigility?

Я не нашел способ описать все мои коды ответов, и я вижу только коды по умолчанию. У меня много ответов, и я хочу их описать. Также меня интересует описание различных запросов, которые вызывают ошибку 400 (например, запрос с такими данными вернет это сообщение и т. Д.), Должно ли это быть описано в документации API?

0

Решение

Как настроить реакцию на ошибку в Apigility

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,

0

Другие решения

не уверен, что это все еще актуально, но вы могли бы использовать параметр конструктора 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/

0

По вопросам рекламы [email protected]