什么是没有有效的api配置(首次构建API时的10个错误状态代码以及如何修复它们)

当第一次使用 API 时,事情并不总是一帆风顺,特别是如果您是一个初学者。在构建 API 时,我们编译了10个最常见的错误代码

每天‬分享‬最新‬软件‬开发‬,Devops,敏捷‬,测试‬以及‬项目‬管理‬最新‬,最热门‬的‬文章‬,每天‬花‬3分钟‬学习‬何乐而不为‬,希望‬大家‬点赞‬,加‬关注‬,你的‬支持‬是我‬最大‬的‬动力‬。

当你第一次使用一个 API 的时候,事情并不总是那么顺利,特别是当你是一个初学者并且这是你第一次将一个 API 集成到另一个系统中的时候。文档通常缺乏错误方面的说明,因为预期事情会向好的方向发展要比预期事情会向坏的方向发展要容易得多。

在 HTTP 中,许多状态代码可以让您了解调用 API 时发生了什么。标准化的状态码从100到511,所有的代码都有不同的含义,但只有400到511的代码是关于错误的。在这张便利的桌子上可以看到它们。

让我们看看客户端或服务器上表示错误的10个最常见的 HTTP 状态代码。

客户端错误

4XX 状态代码组通常与客户端错误有关,但 API 上的更改也可能导致这些错误。下面是5个最常见的错误,以及如何解决它们:

404 Not Found

到目前为止,这是最常见的错误代码。它指示您在请求中使用的 URL 在服务器上不存在。

虽然这是一个4XX 错误,这通常意味着客户端出现了错误,但这也可能表明服务器出现了问题。有时 API URL 在版本更新后会发生变化,但有时它们会因为服务器上的错误而发生变化。

最好的做法是在检查 API 是否有问题之前,检查客户机代码中是否存在输入错误。

401 Unauthorized

这个状态代码意味着您还没有针对 API 进行身份验证。API 不知道你是谁,所以它不会为你服务。

对于大多数 API,您需要注册并获得一个 API 密钥。然后在发送请求时,在 HTTP 头字段中使用此键,告诉 API 您是谁。

403 Forbidden

禁用状态表示您没有请求该 URL 的权限。未授权状态的不同之处在于您已经通过身份验证,但是您通过身份验证的用户或角色不允许发出请求。

当您遇到身份验证问题时,例如使用错误的 API 密钥或试图访问订阅计划不允许的特性时,也会发生这种情况。

400 Bad Request

错误请求状态是最常见的错误消息之一。这意味着你在请求中做错了什么。如果响应主体中没有提供额外的错误信息,则必须检查文档。您可能在请求中遗漏了查询或正文字段,或者标题可能是错误的。也可能是您的一些请求数据的格式不正确。

429 Too Many Requests

大多数 API 订阅计划都有局限性: 计划越便宜,每秒允许的 API 密钥请求就越少。如果您在很短的时间内发送了太多的请求,可以考虑在客户端中限制它们。这种状态也可以表明你的账户达到了每日、每周或每月的限额。

有时候,一个 API 听起来很适合你,直到你发现它的局限性,突然之间,它就不再适合你的用例了。在集成之前检查 API 订阅的一部分; 否则,在集成 API 之后几周或几个月可能会遇到问题。

服务器端错误

5XX 状态代码组通常与服务器端错误有关,但是如果服务器上没有正确捕捉到无效请求,那么应该用4XX 响应的请求也可能导致5XX 错误。下面是5个最常见的错误,以及如何修复它们:

500 Internal Server Error

这种状态实际上可能意味着任何事情,但它通常表明 API 服务器崩溃了。可能是与请求相关的原因。仔细检查文档,以确保所有操作都正确: 查询字段、正文字段、标题、格式等。

如果这还不能解决问题,那么可能还与引入错误代码的 API 更新有关,或者与从上游服务加载的 API 数据有关。在这种情况下,您唯一的行动原因是联系 API 支持。

502 Bad Gateway

这个状态告诉您所调用的服务器不是实际的 API 服务器,而是网关或代理。代理服务器尝试以您的名义调用 API 服务器。状态还表明 API 服务器没有响应。这可能与网络问题有关,或者仅仅是因为 API 服务器崩溃或停机进行维护。

这个问题通常只是暂时的,应该由 API 提供者来解决,但是如果问题持续存在,您必须与支持者联系。

503 Service Unavailable

服务不可用状态意味着服务器超载。发送了太多的 API 请求,现在 API 无法处理更多的请求。当客户机发送的请求较少时,这个问题就自动解决了,但这也可能意味着 API 提供商没有为所有客户计划足够的资源。

如果它适合您的用例,那么您可以通过等待发送更多请求来使您的客户端对此错误更具弹性。但是如果错误不断出现,您必须与 API 提供商联系。

504 Gateway Timed Out

与糟糕的网关状态一样,这个状态告诉您所调用的服务器是实际 API 服务器的代理。这次的问题是 API 服务器没有及时响应。

这可能与代理和 API 服务器之间的高网络延迟有关。这也可能意味着 API 服务器处理请求的时间太长。

要解决此问题,请检查请求的内容是否与该超时相关。如果您要求的数据太多或计算时间太长,您应该尝试减少它。

如果您认为您的要求是合理的,状态不会消失,联系支持。

501 Not Implemented

未实现状态与用于请求 URL 的 HTTP 方法相关。您可以尝试使用不同的方法来发出请求。

通常,使用错误方法的请求只会导致404没有找到状态。未实现状态意味着该方法“尚未”实现API 创建者可以使用这个状态来告诉客户端这个方法将来可用。

Monitoring HTTP Error Codes

手动跟踪这些错误将变得非常繁琐,并且允许出现错误的可能性。API 分析可以提供监控和通知功能,这样你就可以自动跟上任何 HTTP状态码错误,并从错误状态代码的发展趋势中获得深刻的见解。这些工具可以自己制造或购买。下面是一个 API 分析工具的例子,它记录了随着时间推移的 HTTP 错误趋势。

什么是没有有效的api配置(首次构建API时的10个错误状态代码以及如何修复它们)(1)

如果分析工具使用用户标识跟踪 API 调用,则可以更容易地定位问题并迅速解决问题。

什么是没有有效的api配置(首次构建API时的10个错误状态代码以及如何修复它们)(2)

摘要

毫无疑问,在使用 API 时您会看到许多错误代码,但是大多数都有合理的修复。有些与服务器端错误有关,有些与客户端错误有关,通常一个错误会导致另一个错误。

总是尝试彻底地阅读文档,这样在集成时就不会忘记一些东西。如果只是出现了故障,请与 API 提供商联系。

在某些情况下,API 提供程序永远不会修复问题,您必须找到一个变通方法。如果你正在使用一个流行的 API,你也可以搜索网络,特别是 StackOverflow,找到一个解决你的问题的方法。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页