rest - 当端点被 feature-flag/feature-toggle 禁用时,您使用什么 HTTP 状态代码?

标签 rest http response api-design featuretoggle

我一直在使用 503 服务不可用 或停机维护。

但是一些 http 客户端库,即 axios 将 503 视为可重试错误。

如果由于高负载而产生响应,则重试它是有意义的,但 503 也适合功能切换情况。

对人们使用的其他代码有什么建议吗?

最佳答案

状态代码是属于“通过网络传输文档”域的元数据。状态代码的共享语义允许通用 HTTP 感知组件智能地运行。

所以您应该做的是考虑 HTTP 语义。

例如,如果您的服务器无法访问由请求的目标 uri 标识的资源的当前表示,那么您应该发出 404 Not Found 响应。如果请求被禁止,则 403 Forbidden。或者 451 Unavailable for Legal Reasons 当这是预期的含义时。

换句话说:这取决于。

但是它不依赖的是“feature flag”;那是一个实现细节。 “统一接口(interface)”是一种外观,它隐藏了因实现而异的各种技术细节。从外部看,您的 API 给人一种错觉,即您的机器只是另一个乏味的网络服务器。

关于rest - 当端点被 feature-flag/feature-toggle 禁用时,您使用什么 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60284335/

相关文章:

具有多个 View 的 REST 资源

ios - Swift 嵌入式 HTTP 服务器在 Mac 上连接但在 iPhone 上不连接

angularjs - Angular2 - HTTP 200 被视为错误

encoding - JMeter变量编码不正确

java - SC_MOVED_PERMANENTLY 导致 302

java - 设计Web平台身份验证

rest - 如何将 PowerShell 调用 webrequest 与 Windows 身份验证和用户名\密码一起使用

http - 使用 Pentaho Kettle,我如何自动重试由于连接中断而失败的休息请求?

Python 请求 : get attributes from returned JSON string

asp.net - 从 ASP.NET 禁用所有浏览器的浏览器缓存