如何在Apigility中的文档中扩展错误代码?

时间:2015-02-09 11:20:55

标签: php documentation apigility

我没有找到如何描述所有响应代码的方式,我只看到默认代码。我有很多回复,想要描述它们。此外,我有兴趣描述导致400响应错误的不同请求(例如,具有此类数据的请求将返回该消息等),是否应在API文档中进行描述?

2 个答案:

答案 0 :(得分:0)

如何在Apigility中自定义错误响应

Apigility与 ZF Api Problem 无缝协作,可以进行错误处理。

从控制器或侦听器创建错误响应非常简单:

use ZF\ApiProblem\ApiProblem;

...

return new ApiProblem(500, "My Internal Server Error");

常见错误的状态标题设置为here in the class

建议坚持适用于发生问题的有效http error codes,但您当然可以自定义标题。您可以直接从您的控制器和听众返回ApiProblemApigility将正确处理error并返回呈现的json响应,并将Content-Type标头设置为{ {1}}。

答案 1 :(得分:0)

不确定这是否仍然可行,但是您可以使用Api响应对象中的构造函数参数additional来定制您的答案;

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/