在Http状态代码404上返回附加值的最佳方法
有时,在服务器级别,我会返回一些额外的信息以及在Http状态代码404上返回附加值的最佳方法,http,api-design,Http,Api Design,有时,在服务器级别,我会返回一些额外的信息以及HTTP404 例如,与其只返回一个404,这可能会让我的客户困惑路由是否正确,它还将接收如下内容 标识符“abc”未知 我通常将内容类型设置为text/plain,并在content 另一种选择是设置ReasonPhrase 哪种方式/惯例最好?设置Content或设置ReasonPhrase?您可以使用自定义错误响应并覆盖404和任何其他需要的错误 参观这里 在app/Exception/Handler.php中创建一个视图并设置此代码: /*
HTTP404
例如,与其只返回一个404
,这可能会让我的客户困惑路由是否正确,它还将接收如下内容
标识符“abc”未知
我通常将内容类型设置为text/plain
,并在content
另一种选择是设置ReasonPhrase
哪种方式/惯例最好?设置
Content
或设置ReasonPhrase
?您可以使用自定义错误响应并覆盖404和任何其他需要的错误
参观这里
在app/Exception/Handler.php中创建一个视图并设置此代码:
/*将异常呈现到响应中。
*
*@param\light\Http\Request$Request
*@param\Exception$e
*@return\light\Http\Response
*/
公共函数呈现($request,Exception$e)
{
}
设置此用途以使其工作:
使用Symfony\Component\HttpKernel\Exception\NotFoundHttpException
欲了解更多信息,请访问
您可以使用自定义错误响应并覆盖404和任何其他您想要的错误 参观这里 在app/Exception/Handler.php中创建一个视图并设置此代码: /*将异常呈现到响应中。 * *@param\light\Http\Request$Request *@param\Exception$e *@return\light\Http\Response */ 公共函数呈现($request,Exception$e) { } 设置此用途以使其工作: 使用Symfony\Component\HttpKernel\Exception\NotFoundHttpException 欲了解更多信息,请访问
错误消息应该放在响应正文(
内容
)中,而不是放在响应原因短语中
根据:
原因短语旨在给出状态代码的简短文本描述……客户无需检查或显示原因短语
一些解释:
错误消息应该放在响应正文(
Content
)中,而不是放在响应原因短语中
根据:
原因短语旨在给出状态代码的简短文本描述……客户无需检查或显示原因短语
一些解释:
原因短语是短,文本状态代码的描述,它应该描述状态代码本身,而不是自定义错误消息。如果自定义错误消息很长,或者消息具有JSON结构,那么使用原因短语肯定违反了规范
正如规范所指出的,客户端(浏览器)不需要检查原因短语,这意味着某些浏览器可能会在一段时间内忽略原因短语
a) RFC 2616已经过时,请参见RFCs 723*而不是b)也就是说,原因短语在HTTP/2中根本不存在a)RFC 2616已经过时,请参见RFCs 723*而不是b)也就是说,原因短语在HTTP/2中根本不存在我的问题不是我们如何做,而是如果做这件事真的是个好主意。不,这不是个好主意,因为如果客户机在404上执行任何特定操作,则必须更改其代码,使其与您的代码兼容,否则他们可能不知道如何操作。有时遵循标准是好的。。。。。我不建议这样做。我的问题不是怎么做,而是这样做是否真的是一个好主意。不,这不是一个好主意,因为如果客户在404上执行任何特定操作,必须更改其代码,使其与您的代码兼容,否则他们可能不知道如何做。有时遵循标准是好的。。。。。我不建议这样做。
if($e instanceof NotFoundHttpException)
{
return response()->view('missing', [], 404);
}
return parent::render($request, $e);