接口文档设计的12个注意点! 下

简介: 接口文档设计的12个注意点! 下

5. 响应参数的7大要求

响应参数其实跟入参差不多,有7种要素:

  • 参数名称:描述该响应参数的名称。
  • 参数类型:描述该响应参数的数据类型,如String、Integer等。
  • 参数格式:描述该响应参数的数据格式,如yyyy-MM-dd、HH:mm:ss等。
  • 参数说明:对该响应参数的含义进行详细的描述。
  • 取值范围:描述该响应参数的取值范围,如整数范围、字符串长度 等。
  • 是否必填:描述该响应参数是否为必填项。
  • 示例值:提供该响应参数的示例值,以便开发人员更好地理解和使用该参数。

不一样的地方是,响应参数一般都是按照code,msg,data的格式返回的:

{
    "code": 0,
    "message": "success",
    "data": {
        "name": "Tom",
        "age": 20,
        "gender": "男"
    }
}

6. 接口错误码完整

一份好的接口文档,一定少不了错误码列举。一般错误码定义包括三列:错误码、错误码信息、含义

错误码 错误信息 含义
1001 参数错误 请求参数不合法
1002 用户不存在 根据给定的用户ID没有找到对应的用户信息
1003 数据库错误 数据库访问出错

7. 接口安全描述

定义接口文档时,对于一些需要保护的接口,也需要考虑接口的安全 ,例如权限管理、防止 SQL 注入 等。

因此,接口文档应当包含接口的安全性说明:例如接口的访问授权方式、数据传输加密方式等。此外,接口文档还应该对于敏感数据和操作进行标注,方便使用者注意隐私和安全问题

image.png

8. 接口版本管理

在接口文档定义时,接口版本管理是非常重要的一个方面 。由于软件项目的迭代和升级,接口可能会随着版本的变化而发生变化。为了避免接口变化给用户带来不必要的困扰,需要对接口进行版本管理。

以下是一些常用的接口版本管理方法:

  • 在接口文档中明确版本号 :在接口文档中明确标识接口的版本号,例如在接口地址中添加版本号信息,如https://example.com/api/v1/user,表示该接口的版本号为v1
  • 使用语义化版本号 :采用语义化版本号(Semantic Versioning)规范,即版本号格式为X.Y.Z,其中X表示主版本号、Y表示次版本号、Z表示修订号。当进行兼容性变更时,需升级主版本号;当增加功能且不影响现有功能时,需升级次版本号;当进行bug修复或小功能改进时,需升级修订号。
  • 增量发布 :在接口发生变化时,先发布新版本的接口,同时保留旧版本的接口。用户可以根据自己的需求来选择使用哪个版本的接口。随着新版本的接口逐步替换旧版本的接口,最终可以将旧版本的接口废弃。

无论采用何种方法,接口版本管理都应该得到充分的考虑。在接口版本变化时,需要及时更新接口文档(详细描述版本的变化、兼容性问题、版本切换方式等 ),以确保用户能够获得最新的接口信息。

9. 维护接口文档更新迭代

如果接口发生了变更,比如参数有哪些变更、错误码变更等等 ,都需要维护到文档上。同时需要登记变更的记录

日期 变更描述 操作人
2023-04-16 创建接口文档,定义了第一版接口文档 张三
2023-04-18 修改接口文档,增加了错误码、出参等 王五

10. 明确请求头有哪些

接口文档,是需要写清楚请求头的。接口文档的请求头可以看到以下的信息:

  • Content-Type:指定请求体的数据格式,如application/json、application/x-www-form-urlencoded、multipart/form-data等。
  • Authorization:用于身份验证的令牌信息,如Token、Bearer等。
  • Accept:指定客户端可以接受的响应数据格式,如application/json、text/html等。
  • User-Agent:指定客户端的类型和版本信息,可以用于服务端进行针对性优化。
  • Accept-Encoding:指定客户端可以接受的数据压缩格式,如gzip、deflate等。
  • Cache-Control:指定客户端缓存的策略,如no-cache、max-age等。
  • Cookie:包含客户端发送给服务器的cookie信息。

下面是一个接口文档请求头的示例:

POST /api/user HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Accept: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Accept-Encoding: gzip, deflate, br
Cache-Control: no-cache
Cookie: _ga=GA1.2.1234567890.1234567890; _gid=GA1.2.0987654321.0987654321
If-None-Match: W/"2a-3TjT7VaqgkT1nJdKjX9Cpijp2FA"
Referer: https://example.com/login
Origin: https://example.com
Content-Length: 43
{"name": "John Doe", "age": 25, "email": "john.doe@example.com"}

11. 写清楚接口请求示例

接口文档,需要提供接口的使用案例:以方便开发者理解接口的使用方法和调用流程

12. 完善接口测试方法和结果

一般来说,接口文档需要完善接口测试的方法和结果,以便用户可以测试接口是否符合自己的需求,让用户用得放心。



相关文章
|
存储 缓存 安全
API接口设计规范
这个是目前第三方数据接口交互过程中常用的一些参数与使用示例,希望对大家有点帮助。 当然如果为了保证更加的安全,可以加上RSA,RSA2,AES等等加密方式,保证了数据的更加的安全,但是唯一的缺点是加密与解密比较耗费CPU的资源.
|
3月前
|
监控 数据可视化 测试技术
Apifox 如何进行 API 自动化测试?经验之谈
选择 Apifox 来进行 API 自动化测试能够确保每次迭代的质量,避免引入新的 bug,还要实现自动化测试、定时测试、产品监控、可视化测试、持续集成等,帮助提高效率,通过设计和执行有针对性的测试用例,来全面验证产品功能,确保软件系统能够正常运行,减少上线后的问题。
Apifox 如何进行 API 自动化测试?经验之谈
|
3月前
|
小程序 Java 程序员
【规范】Apifox就应该这么玩
本文作者通过对比Postman与Apifox,分享了在项目中使用Apifox进行接口文档整理的方法,旨在帮助读者提升工作效率。文章详细介绍了Apifox目录整理策略、环境管理技巧及前置/后置操作的应用,使接口管理更加有序高效。无论是在短期开发还是长期迭代项目中,这些方法都能帮助开发者更好地管理和维护接口文档。
49 0
【规范】Apifox就应该这么玩
|
5月前
|
JSON 数据安全/隐私保护 数据格式
SPA项目接口文档
SPA项目接口文档
22 0
|
6月前
|
前端开发 数据可视化 Java
如何快速搞定在线接口文档
该文介绍了如何高效管理在线接口文档,强调了实时更新接口文档对于前后端并行开发的重要性。文中提到了Swagger,一个用于生成、描述和调用RESTful Web服务的框架,它能自动生成接口文档,促进团队协作,并支持功能测试。Springfox是Spring与Swagger的结合,简化了其在项目中的使用。另外,文章推荐了knife4j,这是一个Java MVC框架的Swagger增强工具,小巧、轻量且功能强大,目前被广泛采用。
113 5
|
API 数据安全/隐私保护 网络架构
接口文档编写规范(前后端分离项目接口api)
接口文档编写规范(前后端分离项目接口api)
512 0
|
JSON 算法 JavaScript
《协议测试》没有接口文档,要怎么写接口测试用例?
《协议测试》没有接口文档,要怎么写接口测试用例?
|
API C#
【C#编程最佳实践 二十三】如何将接口生成接口文档
【C#编程最佳实践 二十三】如何将接口生成接口文档
389 0
【C#编程最佳实践 二十三】如何将接口生成接口文档
|
JSON 数据可视化 Oracle
比swggaer更好用的接口文档工具
今天给大家推荐一个新接口工具:YesApi接口大师。 YesApi接口大师(5合1):Admin接口管理后台,看这个名称就知道,这个工具很符合国内程序员、以及技术小白使用。通过网站界面,它能帮你轻松管理API接口,除了可以自动生成接口文档、还能生成API接口源代码、通过界面鼠标就能开发接口,一键、快速发布、管理和开放你的API接口。
|
存储 JSON NoSQL