域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。现在,我们已启用新域名 AXUM.EU.ORG
  • 方案AXUM.RS 域名 = 3000
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名,或者该域名到期,本站将使用免费域名 AXUM.EU.ORG 继续提供服务。

axum错误处理

本章主要讨论 axum 的错误处理。

自定义 extractor

extractor 的定义

axum 官方已经提供了很多 extractor,其中包括 axum::Json。现在,我们要实现自己的 Json extractor——当然,为了避免混乱,建议取别的名字,比如MyJson等。

在 handler 中使用

nginx

我们可以使用 nginx 来反代 axum 应用,并根据不同的 HTTP 响应码来定义不同的 JSON 响应:

server {
    listen 443 ssl;
    server_name axum.rs;

    error_page 400 401 403 404 405 500 501 502 503 504 /msg.json;
    location /msg.json {
        internal;
        default_type application/json;
        charset utf-8;
        return 400 '{"error":"请检查你提交的数据"}';
    }
}

本章代码可以在代码库找到。

要查看完整内容,请先登录