jay*_*yde 2 python json nginx custom-error-pages
对于 404s 和 500s/502s/504s 错误,我返回自定义 JSON 错误页面:
{
"response":
{
"status": "EXCEPTION_404_NOT_FOUND",
}
}
Run Code Online (Sandbox Code Playgroud)
在我的sites-enabled/service_nginx.conf中,我将其设置如下:
error_page 404 /404.json;
location /404.json {
internal;
root /temp/error_response_templates;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常。也就是说,每次 404 都会返回 JSON。但我想将请求或一些请求详细信息添加到返回的 JSON 中。例如,对于http://service.com/param1/param2/,如果遇到 404,我想在返回的 JSON 中包含 param1 和 param2。像这样:
{
"response":
{
"status":"EXCEPTION_404_NOT_FOUND",
"param1":<param1 value>,
"param2":<param2 value>,
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是,有人可以帮我怎么做吗?提前致谢!
您可以为每个错误代码设置类似的内容:
error_page 404 @404_json;
location @404_json {
default_type application/json;
return 404 '{ "response": { "status": "EXCEPTION_404_NOT_FOUND",
}, "message": "Not Found"}';
}
Run Code Online (Sandbox Code Playgroud)
或者从文件加载错误消息,例如:
try_files /404.json =404;
Run Code Online (Sandbox Code Playgroud)
建议避免在模板中使用变量(出于性能原因)。
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |