如何让 Apifox 发布的在线文档具备更好的调试体验?

如何让 Apifox 发布的在线文档具备更好的调试体验?

打开一个用 Apifox 发布的在线 API 文档,你会发现每个接口旁边都有一个「调试」按钮。点击之后,页面右侧会滑出一个调试面板,让你可以直接在文档页面上测试接口。

让 Apifox 发布的在线文档具备更好的调试体验


但这个“调试”功能是否好用,很大程度上取决于你在端内的配置工作。URL 是否配置得当、鉴权配置是否合理、参数结构设计得是否清晰、示例数据是否完整,这些细节都会直接影响调试体验。

如果配置不当,文档使用者拿到 API 文档后,可能需要花费大量时间去填写各种参数,甚至无法成功调用接口,这样的体验显然不是我们想要的。

下面我们就来聊聊如何在 Apifox 中进行合理的配置,让发布出去的在线文档具备更好的调试体验。

正确配置 URL

很多时候你发布的在线文档看起来没问题,但点击「调试」按钮后发送请求却出现失败。最常见的原因是接口只填了/pet/{petId}这样的路径,然后发布文档时又忘记选择运行环境。

正确配置 URL


这样在“在线文档”调试时看到的请求地址是不完整的,没有协议和主机名,点击“发送”按钮时自然会报错。

“在线文档”调试时看到的请求地址是不完整的


这个问题就是 URL 配置不当导致的,我们首先要解决这个问题,先让文档使用者能用上正确的 URL 再说。

在 Apifox 中给“在线文档”配置 URL 有三种方式,选择哪种主要看你的实际需求。

前置 URL 放到环境

第一种方式是接口只写路径,然后把完整的服务地址放到「环境管理」中,这是最推荐的做法。

具体来说,你在接口定义中只写路径部分,比如 /pet/{petId},然后把 https://product.example.com这样的完整地址配置到「环境管理」的前置 URL 中。

前置 URL 放到环境


发布 API 文档时记得选择这个运行环境,Apifox 会自动拼接成完整的请求地址。你也可以选择多个“运行环境”,每个环境都应该有对应的前置 URL。

Apifox 会自动拼接成完整的请求地址


在“在线文档”中,就可以通过环境列表快速切换,所有接口的地址会自动更新为对应的前置 URL,这让在不同环境下验证接口变得非常方便。

所有接口的地址会自动更新为对应的前置 URL


在配置 URL 时,需要注意协议问题。现在很多浏览器对 HTTPS 页面调用 HTTP 接口有安全限制,如果你的接口用的是 HTTP 协议,那么文档使用者在 HTTPS 的文档页面调试时可能会遇到跨协议的问题,导致访问失败。

接口中写完整 URL

第二种方式是直接在接口中写完整地址,比如直接写 https://product.example.com/pet/{petId}

接口中写完整 URL


这样不管发布时是否选择“运行环境”,都能在地址栏中看到完整的请求地址。

在地址栏中看到完整的请求地址


这种方式虽然直接,但当服务器地址变化时你需要逐个修改接口,管理起来会比较麻烦,所以不太推荐

URL 中使用变量

第三种方式是接口写带变量的 URL。如果你希望文档使用者能够自行填写 URL 进行调试,可以通过这种方式来实现。

在项目右上角的环境管理中创建一个环境变量(比如 BaseURL,然后在前置 URL 中使用 {{BaseURL}} 引用这个变量。

URL 中使用变量

这样配置后,在“在线文档”中就可以点击变量名,然后修改为自己的 URL。

在“在线文档”中就可以点击变量名


如果你只想让某个特定接口支持 URL 修改,也可以直接在接口定义中使用 {{BaseURL}}/pet/{petId} 这样的写法。

你只想让某个特定接口支持 URL 修改


在在线文档的特定接口中,就可以设置变量的值来发送请求了。

在在线文档的特定接口中,就可以设置变量的值来发送请求了。
注意:如果使用了变量,需要在发布文档前检查环境的“远程值”是否包含敏感信息(如鉴权凭证)。这些远程值会随文档一同发布,可能带来隐私泄漏风险。

正确配置 Auth

基本鉴权配置

接口要请求成功一般都需要鉴权,Apifox 支持多种鉴权类型:Bearer Token、API Key、OAuth2.0、Basic Auth 等。

你可以在接口或者目录层级的 Auth 中配置鉴权方式,可以使用鉴权组件,也可以自行设置。

正确配置 Auth


配置鉴权信息后,比如使用 Bearer Token 鉴权,你会在“在线文档”面板顶部看到一个“鉴权”区域,在这里可以直接输入 Token 值,不用手动加上 “Bearer” 前缀,Apifox 会自动处理,这比手动在 Headers 中添加 Authorization 字段要方便很多。

Apifox 支持多种鉴权类型:Bearer Token、API Key、OAuth2.0、Basic Auth 等


这种配置方式最大的好处是可以在不同接口间共享鉴权信息。如果多个接口引用相同的鉴权组件或鉴权类型,只需要在一个地方输入鉴权信息,其他接口就可以自动复用。如果修改了鉴权值,所有引用这个值的接口都会自动更新。

在接口或者目录层级的 Auth 中配置鉴权方式


这些鉴权凭证会在文档使用者的浏览器本地进行加密存储,并以 Session 为周期进行管理,支持在多个窗口和标签页间共享。当关闭浏览器后,这些凭证会自动清除。相比在项目中通过变量的方式引用,这样配置 Auth 不会在发布在线文档时,将环境中配置的“远程值”不小心暴露。

OAuth2.0 配置

对于 OAuth2.0 鉴权,如果希望文档使用者可以在调试时直接生成 Token,就要先在项目中配置完整的授权服务器信息,包括 Auth URL、Token URL 等。

文档使用者可以在调试时直接生成 Token


如果使用了 OAuth2.0 鉴权组件且已配置授权服务器信息,那么文档使用者在调试时需要填写客户端 ID、客户端密钥等信息,然后通过弹窗完成授权过程,获取到的 access_token 会自动填入到后续的 API 请求中,这样就不需要在其他地方进行授权再复制 token 回来了。

使用了 OAuth2.0 鉴权组件且已配置授权服务器信息



设计清晰的接口参数结构

调试面板的参数显示

调试面板会根据你在项目内的的接口设计,智能显示相应的参数区域。接口设计成什么样,调试面板就显示什么内容。

如果接口只定义了 Path 参数,调试页面就只显示这一个区域,不会出现用不到的 Query 参数或者 Body 参数,需要时可再自行添加。

设计清晰的接口参数结构


这样一来,文档使用者打开调试页面就能明白需要填写哪些参数,不会被不必要的区域干扰使用。

提供示例值

在项目中设计接口时,要准确定义每个参数的类型和必填属性。参数描述要写得清晰具体,最好包含示例值,因为示例值可以在“在线文档”的调试面板中默认填充。

要准确定义每个参数的类型和必填属性


避免冗余 Header

如果接口定义了 Body 参数,就不必再手动添加 Content-Type: application/json 这样的 Header。Apifox 会在发送请求时自动处理相关请求头,不需要重复配置。

避免冗余 Header


如果已经在 Auth 中配置了鉴权,也不要再在 Headers 中写一遍类似 Authorization: Bearer ... 的内容,Auth 配置具有更高优先级,会自动覆盖 Headers 中的相同配置,重复配置不仅无效还容易让使用者混淆这两者。

再在 Headers 中写一遍类似 Authorization: Bearer ... 的内容


提供丰富的请求示例

如果接口有复杂的 JSON 请求体,你可以在设计接口时为请求体添加多个请求示例。

提供丰富的请求示例


这样在调试时可以通过选择“示例”下拉菜单直接使用这些预设数据,而不需要从零开始构造请求。

通过选择“示例”下拉菜单直接使用这些预设数据


示例数据要尽量接近真实业务数据,但要注意不要包含敏感信息。文档使用者可以基于示例进行修改,以降低出错率。

配置清晰的响应示例

在“在线文档”中发送请求后,调试面板会显示完整的响应信息,包括状态码、响应头和响应体。作为文档构建者,你需要为接口配置清晰的响应示例,帮助文档使用者理解不同情况下的返回结果。

配置清晰的响应示例


建议为每个接口添加多种响应示例:成功(200)、请求有误(400)、未认证(401)等。

建议为每个接口添加多种响应示例


特别要注意错误响应的配置,要明确说明每种错误情况下返回的错误码和错误信息格式,这样文档使用者在调试时遇到错误就能快速定位问题。比如参数错误时返回什么格式的错误信息,鉴权失败时又是什么格式。

提供示例代码集成

你可以为常用的编程语言提供请求示例代码,虽然 Apifox 会自动生成这些示例代码,但自动生成的结果可能和你的业务需求不完全一致,这个时候你就可以自定义这些示例。

你可以在「项目设置 -> 接口功能设置 -> 请求示例代码」中,统一设置哪些语言的示例代码需要自动生成。

提供示例代码集成


另外,也可以在具体接口的 「接口说明」 中单独编写请求示例代码。

在具体接口的 「接口说明」 中单独编写请求示例代码


这样一来,在“在线文档”中展示时,文档使用者不仅能看到自动生成的示例,还能直接参考你提供的自定义示例。

文档使用者不仅能看到自动生成的示例,还能直接参考你提供的自定义示例

综上,在线文档的调试体验很大程度取决于前期的配置工作。

当你把 URL 配置得当、鉴权方式设置合理、参数结构设计清晰、示例数据准备充分时,阅读这份 API 文档的用户就能快速上手,不会在各种配置问题上卡住。他们可以专注于调试 API,而不是浪费时间在技术细节的排错上。

欢迎各位用户对 Apifox 继续提出使用反馈和优化意见,我们会持续优化更新,致力于为用户提供更优秀的产品功能和更极致的使用体验!

有任何问题欢迎在Apifox 用户群与我们交流沟通!

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态