go http 包仅支持来自 RFC 2616 的状态代码。很多 REST api 像 github 使用 422 来处理错误的输入数据。我也想这样做,但在 go 中我没有看到这样做的好方法。我看到的选项是
编辑源代码到http包并添加。这很容易做到,但编辑核心库会很糟糕。
http.Response 结构将 Status 作为字符串 StatusCode 作为 int。我想我可以在响应中设置它们,但是 http.Handler 只有一个 RespnseWriter 接口。可以制作一个具有正确设置响应的 RoundTripper 的 http.Transport。即使有可能,这在某种程度上似乎也是一种hacky。
那么添加自定义 http 状态代码的最佳方法是什么,还是只是一个坏主意?
相关分类