通常,咱们在调试第三方提供的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...