共计 1581 个字符,预计需要花费 4 分钟才能阅读完成。
通常,咱们在调试第三方提供的 API 时,有时候并没那么顺畅,甚至可能自身就是 API 服务有问题,然而须要提供你论断的 ” 根据 ”。上面整顿了一些 API 调试技巧,也不便你甩锅
简略来说分为以下两点
- 检测状态信息
- 检测返回数据
接下来用接口管理工具 Apifox 来演示如何使用接口可视化工具来定位接口问题
1 检测接口状态码
当咱们对某个 API 发动申请时,API 所在的服务器会返回一个 HTTP 状态码,通过这个状态码咱们能够理解到 API 申请的状态。常见的状态码 比方:401 代表不具备拜访权限; 500 代表服务器出错
通过状态码来检测接口是否失常调用,这也是调试接口的第一因素。
上面是一些罕用的接口状态码报错
- 400 示意申请参数谬误,咱们能够查找是否存在语法错误,如输出谬误或畸形的 JSON 注释。
- 401 示意未经受权,咱们须要的确是否有拜访对应指标资源的无效认证凭证,同时确认没有语法问题。
- 403 示意服务器拒绝请求,此时能够查看咱们具备的权限和范畴,以确保能被受权拜访资源。
- 418 示意我就是个杯具(I ‘m a Teapot),可能示意申请是提供者不想解决的申请,例如主动查问。
- 429 示意太多的申请,此时咱们能够查看文档,以便理解应用频率限度或着稍后再试。
这里以 Apifox 接口管理工具调试为例,反对的校验响应,能够主动校验接口响应状态码是否合乎咱们的预期
2 进阶调试剖析
这里分享几个常见的申请 API 场景,也是你可能会掉入的坑:
畸形的 JSON
当你在发送 JSON 时会犯一些常见的谬误。在 JSON 字符串中,单引号有效,因而请确保将字符串和属性名用双引号括起来。此外,JSON 不反对正文,所以要么尽量简化,要么基本不增加它们。
Content type 头
Content- type 和 Accept 头有助于在客户端和服务器之间进行内容协商。Content-type 申请头通知服务器,客户端发送的信息类型。而 Accept 申请头通知服务器,客户机能够了解什么类型的内容。一些 API 须要特定的申请头,并且只解决特定的内容类型。
比方: 依据 Accept header 返回对应格局图片
上面是以 Apifox 官网推出的 Apifox Echo 中的一个例子作为演示
Apifox Echo 是 Apifox 官网提供的 简略的接口申请和返回数据服务
在线调试连贯:https://www.apifox.cn/apidoc/…
序列化数据
REST API 常见的以 JSON 的模式存储和发送数据。而为了保障正确传输数据,咱们能够应用 JSON.stringify()对数据进行编码,及 JSON.parse()对其进行解码。此外,服务器可能要求您设置一个 application/json 类型的 Content-Type 头。进一步查看后,如果你看到返回值呈现像 [object object] 或 Unexpected token,表明咱们非法的进行了序列化和反序列化。
类型转换
在筹备发送申请或解析响应时,能够将值从一种类型转换为另一种类型。依据编程语言的不同,对字符串执行数学计算可能会导致失败,但当咱们将字符串转换为数字时,就能够解决转换后的数据了。
比方:咱们调试的接口响应返回的是 base64 格局,这时候咱们想解析这个数据的原数数据,咱们能够在 Apifox 的后置操作中增加脚本,通过定义脚本对数据进行转换
如下所示
提取信息
应用 JSON.parse()反序列化 JSON 响应后,就能够应用点或括号符号拜访所有信息。如果您试图拜访一个简单构造中的深层嵌套信息,您可能须要一步一步地将其合成,以准确地援用该信息,并确保您不会试图应用到一些未定义的货色中。
身份验证与受权
身份验证是指验证用户的身份,而受权则确认用户领有拜访资源的权限。如果申请中蕴含了适当的受权头,但依然不能拜访资源,请仔细检查与凭据相干的权限和作用域。
文章参考:
https://stackoverflow.blog/20…