这是一个有点简单的问题,但遗憾的是,到目前为止我还没有找到具体的答案。
我们正在构建一个 API(我们还没有投入生产),它在用户认证等之后返回大量数据。API 系统每秒和每小时跟踪用户的使用情况。当用户超出这些限制中的任何一个时,服务器不会返回任何内容和一些 http 错误代码。
目前,我正在使用 406 Not Acceptable,但我认为这不是最好的代码。有人建议超过 509 带宽限制将是一个很好的,但我想知道是否有一个代码可以被认为是适合我的情况的最佳实践。预先感谢您的帮助!
这是一个有点简单的问题,但遗憾的是,到目前为止我还没有找到具体的答案。
我们正在构建一个 API(我们还没有投入生产),它在用户认证等之后返回大量数据。API 系统每秒和每小时跟踪用户的使用情况。当用户超出这些限制中的任何一个时,服务器不会返回任何内容和一些 http 错误代码。
目前,我正在使用 406 Not Acceptable,但我认为这不是最好的代码。有人建议超过 509 带宽限制将是一个很好的,但我想知道是否有一个代码可以被认为是适合我的情况的最佳实践。预先感谢您的帮助!
想到状态码 429:
RFC 6585,第 4 节:429 请求过多
429 状态码表示用户在给定时间内发送了太多请求(“速率限制”)。
响应表示应该包含解释条件的详细信息,并且可以包含一个 Retry-After 标头,指示在发出新请求之前要等待多长时间。
好吧,既然您没有找到适用的错误代码,我猜应该没有。在这种情况下,如果我是你,我会使用你的 406 或类似的东西,只是决定一些东西并继续使用它。浏览器无论如何都不关心,API 被人们使用,他们会接受你返回的任何代码并推断这是一条规则——“如果我超过使用量,我会得到 406”。我认为魔术数字是什么并不重要。