API状态和错误码

状态代码和错误代码是指响应头中的代码号 , 用于指示响应的常规分类 , 例如 , 请求是否成功(200) , 是否导致服务器错误(500) , 是否存在授权问题(403) , 等等 。标准状态代码通常不需要太多文档 , 但是特定于您的API的自定义状态和错误代码则需要 。错误代码特别有助于解决不良请求 。
目录

  • curl标头中的状态码示例
  • 列出HTTP响应和错误码的位置
  • 在哪里获取状态和错误码
  • 如何列出状态码
  • 状态/错误代码可以帮助进行故障排除
  • 状态和错误码示例Context.ioTwitterMailchimpFlickr
  • 具有状态和错误代码的活动
curl标头中的状态码示例状态码未出现在响应正文中 。它们显示在响应标题中 , 默认情况下您可能看不到 。还记得您在“curl调用方法”中提交了curl调用吗?要获取响应头 , 请在curl请求中添加--include或-i 。如果您只想在响应中返回响应标头(而不要返回其他任何内容) , 请大写-I , 如下所示:
curl -I -X GET "https://api.openweathermap.org/data/2.5/weather?zip=95050&Appid=fd4698c940c6d1da602a70ac34f0b147&units=imperial"响应头如下所示:
【API状态和错误码】HTTP/1.1 200 OKServer: openrestyDate: Thu, 06 Dec 2018 22:58:41 GMTContent-Type: application/json; charset=utf-8Content-Length: 446Connection: keep-aliveX-Cache-Key: /data/2.5/weather?units=imperial&zip=95050Access-Control-Allow-Origin: *Access-Control-Allow-Credentials: trueAccess-Control-Allow-Methods: GET, POST第一行HTTP / 1.1 200 OK告诉我们请求的状态(200) 。大多数REST API都遵循响应头的标准协议 。例如 , 200不仅仅是OpenWeatherMap API开发人员确定的任意代码 。200是用于成功HTTP请求的通用代码 。(如果您更改方法 , 则会获得其他状态代码 。)
有了GET请求 , 很容易判断请求是否成功 , 因为您会获得预期的响应 。但是 , 假设您要进行POST , PUT或DELETE调用 , 那么您将在其中更改资源中包含的数据 。您如何知道API是否成功处理并接收了请求?响应标头中的HTTP响应代码将指示操作是否成功 。HTTP状态代码只是较长消息的缩写 。
API状态和错误码

文章插图
状态代码非常微妙 , 但是当开发人员使用API??时 , 这些代码可能是开发人员拥有的唯一“接口” 。如果您可以
状态码通常不提供信息 , 编写得很差 , 并且很少或没有向用户传达有用的信息来克服该错误 。最终 , 状态码应帮助用户从错误中恢复 。
您可以在此处查看常见的REST API状态代码列表 , 并在此处查看HTTP状态代码的常规列表 。尽管最好包含一些标准状态代码 , 但是不需要全面记录所有标准状态代码 , 尤其是在您的API很少触发的情况下 。
列出HTTP响应和错误码的位置大多数API应该有一个通用页面 , 其中列出了整个API的响应和错误代码 。一个单独的页面列出了状态代码(而不是在每个端点中包括这些状态代码) , 使您可以更详细地扩展每个代码 , 而不会占用其他文档 。它还减少了冗余和信息过载感 。
另一方面 , 如果某些端点比其他端点更容易触发某些状态和错误代码 , 则在相同的API参考页面上突出显示这些状态和错误代码是有意义的 。一种策略可能是引起注意特定端点的任何特别相关的状态或错误代码 , 然后链接到集中的“响应和状态代码”页面以获取完整信息 。
在哪里获取状态和错误代码在记录API时 , 状态代码和错误代码可能并不明显 。您可能需要向开发人员索要API独有的所有状态和错误代码的列表 。有时 , 开发人员会直接在编程代码中对这些状态和错误代码进行硬编码 , 而没有简单的方法来向您提供完整的列表(这也使本地化成为问题) 。结果 , 您可能需要尝试一下以找出所有代码 。
具体来说 , 您可能需要尝试破坏API才能查看所有潜在的错误代码 。例如 , 如果您超出了特定呼叫的速率限制 , 则API可能会返回特殊错误或状态代码 。您尤其需要记录此自定义代码 。API中的疑难解答部分可能会特别使用错误代码 。
如何列出状态码您可以在基本表或定义列表中列出状态和错误代码 , 如下所示:


推荐阅读