前端接口文档怎么写,如何写一份优秀的接口文档

大雄 316 2022-08-27


下面是关于接口设计文档-前端接口文档

首先要有一个文档的标题,XXX接口文档,符合当前文档的说明,文档的生产日期,以及公司名称等。现在开始写一个dubbo接口文档,定义标题,以及日期,这里公司省略。使用confluence在线编辑,Confluence为团队提供一个协作环境。团队成员协同地编写文档和管理项目。从此打破不同团队、不同部门以及个人之间信息孤岛的僵局,Confluence实现了资源的共享。

接下来要有当前文档的版本修订信息,即为历史修订信息,应当包含基础的信息有:版本号、修订日期、修订人、修订说明等。

开始编写文档的目录结构,注意大标题和小标题的使用,需要合理的运用说明。首先当然是文档的说明信息,再来是一些准备信息和流程信息,然后开始接口说明,最后可以有举例、常见问题、注意事项、响应码的说明信息等等。

下面开始按照文档的目录结构逐一进行详细的介绍说明,比如文档说明的介绍,用高效简洁的语言明确的说明文档信息,注意文档中大标题应当字体大小样式一致,小标题也应当字体大小注意保持一致。

简单的说明技术资料获取及准备,确认调用系统信息比较重要,需要确认编码格式,防止乱码,确认当前的文档版本是否是要使用的版本,否则白做无用功,项目的搭建环境简单说明即可。

开始说明接口的调用流程,如何调用接口,需要做的一些准备,说明引入相应的依赖以及配置需要配置的文件。

现在可以开始接口的说明,接口的说明信息应当包含接口的名称,接口的地址,接口的协议,然后针对当前接口下的方法说明。

方法的说明应当包含方法的描述,即其作用,方法的请求参数说明,以及响应的参数说明,参数说明应当包含参数的类型,参数名称,参数的含义,并且备注参数是否必须传递。

9

接口说明完之后,就是文档的末尾,有注意事项添加一些注意事项,或者附录说明,添加标注。

2.软件接口说明文档怎么写

1 引言

1.1编写目的

说明编写这份详细设计说明书的目的,指出预期的读者。

1.2背景

说明:

a.待开发软件系统的名称;

b.本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。

1.3定义

列出本文件中用到专门术语的定义和外文首字母组词的原词组。

1.4参考资料

列出有关的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。

2 程序系统的结构

用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间 的层次结构关系。

3 程序1(标识符)设计说明

从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。 对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。

3.1程序描述

给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发 处理卜…..等)。

3.2功能

说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。

3.3性能

说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。

3.4输人项

给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。 数量和频度、输入媒体、输入数据的来源和安全保密条件等等。

3. 5输出项

给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。

3.6算法

详细说明本程序所选用的算法,具体的计算公式和计算步骤。

3.7流程逻辑

用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。

3.8接口

用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。

3.9存储分配

根据需要,说明本程序的存储分配。

3.10注释设计

说明准备在本程序中安排的注释,如:

a. 加在模块首部的注释;

b.加在各分枝点处的注释; 对各变量的功能、范围、缺省条件等所加的注释;

d.对使用的逻辑所加的注释等等。

3.11限制条件

说明本程序运行中所受到的限制条件。

3.12测试计划

说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。

3.13尚未解决的问题

说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。

4 程序2(标识符)设计说明

用类似3的方式,说明第2个程序乃至第N个程序的设计考虑。

最近看了很多写的非常好的接口文档,在理解业务方面给了非常多的帮助,解决很多时候对于一些协商数据的问题困扰,同时,后续个人的工作当中,也需要对外开放接口给第三方进行调用,这时候一个好的规范文档可以解决很多问题。


文章目的:

个人对于写接口文档的一些资料整理。

学习如何写一份别人乐意去看的文档。

希望可以通过本文帮助处理那些面临自己写接口文档的情况下无从下手的尴尬的局面。

目录:

主要分为以下两个版本,两个版本各有各自的特点,需要应对不同的应用场景


简单版本

复杂版本

简单版本

核心:如果你的案例可以直接依靠复制拿来使用,那这个文档就是好文档


既然要简单,那就抓住核心:怎么简单怎么来,怎么省时间怎么来


如果不知道怎么写,就把案例写的越详细越好。


开发时间是非常宝贵的,而接口对接通常都是一些工期紧张的情况下去快速编写,而且面对一些碎片化的时间工作者,一份简单直观的文档可能更受欢迎。


另外,接口文档最终形式最好是pdf,以前遇到过接口文档写到word里面的,在不同的版本下可能会出现样式等各种问题




最佳方式:word -> pdf




简单版本的目录格式

接口说明

请求示例

请求参数说明

响应示例

响应参数说明

案例模板1:

接口说明:

接口功能:




本接口用于获取用户的token信息。




接口请求地址:


https: xxx/xxx/xxxx

1.

请求头 :


请求头


请求内容


说明


Authorization


Basic secretKey


访问token


Content-Type


application/json


请求方式


请求方式: POST


参数类型 :JSON


请求示例:

绝大多数为json,格式自定


[

    {"id":"20201219",

     "name":"21.59",

     "age":"ftp_1002"

     ...

    },

    {"id":"20201219",

     "name":"21.59",

     "age":"ftp_1002"

     ...

    },

]

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

请求参数说明

字段名


字段说明


字段类型


是否必填


字段1


说明字段1的作用


varchar(50)



字段2


说明字段2的作用


int



字段3


说明字段3的作用


decimal



响应示例

成功响应编码:


{

    "code: "200",

    "message": "请求成功",

    "data": 返回数据,格式自定

}

1.

2.

3.

4.

5.

失败响应编码:


{

    "code: "200",

    "message": "请求成功",

    "data": 返回数据,格式自定

}

1.

2.

3.

4.

5.

响应参数说明

接口返回码


接口返回描述


200


成功


400


请求参数异常


401


授权失败


500


系统异常


案例模板2:

下面这种模板是单个接口的适合很实用,同时针对一些比较简单的接口这样处理还算比较直观


核心是一个表包含所有信息,这对于一些接口量非常非常大的时候或者接口参数相似的时候比较有效果,这样可以使得内容比较紧凑,不会看了下一页忘记上一页的烦恼,当然缺点也很明显,会存在文字堆积的情况。




markdown的表格在存放Json的数据时候不是很直观,建议使用word




接口名


UserUpdateService


接口请求地址


www.baidu.com


功能说明


UserUpdateService接口是应用系统的账号修改方法


请求参数


参数名


中文说明


RequestId


平台每次调用生成的随机ID,应用系统每次响应返回此ID,String类型


uid


三方应用系统账号创建时,返回给应用系统的账号主键uid。必传字段


loginName/ fullName


需要修改的账号字段属性


响应参数


参数名


中文说明


RequestId


平台每次调用接口发送的请求ID,字段为String类型


resultCode


接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。


message


接口调用处理的信息。字段为String类型


请求示例:


{ “token”,””, “treeCode”,” EXECUTIVE”, “code”,””}


markdown展示不是很好看,建议word


返回值


{ "xxxx": "xxxxxx", "resultCode": "0", "message": "success" }


markdown展示不是很好看,建议word


案例模板3:

下面这种可能不是很直观,但是参考很多文档发现好像类似的还不少,也可以参考一下。


请求地址:http://www.baidu.com


l属性列表

属性名


中文命名


值类型


值必须


描述


token


令牌


String



treeCode


机构树编码


String



如果为空表示根机构,默认填写” ROOT”


code


机构代码


String



start_date


开始日期


Date


合同或项目的开始日期


name


机构名称


String



end_date


结束日期


Date


合同或项目的结束日期


user_num


驻点人员数量


Int


supplier_name


供应商名称


String


type


机构类型


String



项目机构ProjectOrg,行政机构AdministrativeOrg


orgUpCode


上层机构代码


String



parentId


父机构code


String



isDisabled


是否禁用


Boolean


false


l 响应属性列表


属性名


中文命名


值类型


值必须


描述


code


返回码


String



message


返回信息


String



如果为空表示根机构,默认填写” ROOT”


data


返回内容


String



lJSON数据示例**

[http://xxxxxxxx/xxx/xxx]


请求参数:

"

    {

        “token”,””,               //必填

        “treeCode”,” EXECUTIVE”,  //必填

        “code”,””,                //必填

        “entity”,” {

        "code":"2222",            //必填

        " start_date":"",

        "name":"字段名称",         //必填

        "end_date ":"",

        "user_num":"",

        "supplier_name":"",

        “type”,””,   //指定类型

        "orgUpCode":"11111",      //必填

        "parentId":"1111111",    //必填

        “isDisabled”:” false”    //是否禁用

    }

"


响应:login


JSON - 数据示例


{

 "success": true,

 "data": {

     "treeId": "ROOT",

     "parentId": 112034,

     "name": "3333",

 },

 "errorCode": null,

 "errorName": null,

 "errorMessage": null,

 "errorException": {

  "name": null,

  "message": null,

  "trace": null

 }


}

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

至此,一个简单的接口文档差不多就是这些内容,下面将会介绍一下复杂的做法(内容较多)


复杂版本

由于不同的公司有不同的文档格式要求,这里只给出我看过的几个文档罗列下来的一些文档内容,不一定通用,也不一定是很完美的,但是希望内容可以具备一定的参考价值。


复杂版本的内容有点多。请耐心观看或者收藏再看(=v=)


复杂版本的目录格式

+ 封面

  + 接口文档名称

  + 接口版本号

  + 版权说明

+ 文档信息

  + 标题 | 创建时间 | 打印时间 | 文件名 | 存放目录 | 所有者 | 作用

  + 小题:版权声明

+ 版本历史(重点1)

  + \| 版本号 \| 日期 \| 修改者 \| 描述 \|

  + \| v1.0.0  \| xxx \| xxx \| xxx |

+ 目录

  + 结构清晰

  + 有条理

  + 能快速定位需要的信息(后文会介绍)

+ 文档具体内容部分

  + 编写目的

  + 对接准备事项

    + 测试联调

    + 上线

  + 使用协议 + 规范

  + 报文规范

    + 请求报文规范

    + 响应报文规范

  + 接口描述

    + 报文规范

      + 请求报文

      + 响应报文

      + 公共报文头

      + 接口码说明

      + 业务接口

      + 查询接口

    + 加解密规范

      + 原则

      + 令牌信息

      + 加密规范

      + 解密规范

  + 业务接口

    + 具体接口1:

      + 说明

      + 规范码(查表)

      + 使用方式

      + 请求字段

      + 响应字段

      + 案例

    + 具体接口2....

    ........

  + 附录

    + 参考资料1

    + 参考资料2

  + 其他.....

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

50.

案例:

封面:

封面还是比较重要的,毕竟是打开文档的第一眼内容,下面用阿里的文档作为参考,可以看到封面一般是如下内容:


公司名称

文档名称

版本号



文档信息:

文档信息主要记录这份文件的产生日期以及具体的创建打印日期等。


文档名


内容


标题


一份帅气的文档


创建日期


20xx-xx-xx


打印日期


20xx-xx-xx


文件名


文档的全名


存放目录


文件位置


所有者


某某公司


作者


张三




版权声明:(现在这个时代版权是极其重要的)


xxxx所有,不得三方借阅、出让、出版




版本历史:

版本历史是很重要的,每次改动都需要有详细的记录,这样才能保证文档的干净和有效,同时可以方便review的时候,对于文档的修订者进行文档审查


版本号


日期


概述


修订者


1.0.0


20xx-xx-xx


创建


张三


1.0.1


20xx-xx-xx


修改文档第一小节内容


李四


1.0.2


20xx-xx-xx


修订文档第四小节的错误描述,更新文档说明


王五


目录:


好的文档一定有好的目录,只要按照一定的规范和格式写出来的文档,一般看上去都是十分舒服的。还是用阿里的开发手册做参考 


文档具体内容部分

这一部分发挥的自由空间就比较大了,不同的业务不同的公司不同的需求不同的人都能写出万千种格式的文档,所以这里也是给一个样例做参考使用。是否有实用价值因人而异。




为了不让整个目录树太长,这里没有做标题说明=-=




编写目的:


需要解决什么问题,为什么要这份文档,这份文档有什么参考价值?


对接准备事项:


接口方可以提供什么内容,接口方需要对接方的那些内容,以及提供的其他信息,比如需要对接方提供 系统应用id,系统唯一标识。向对接方提供密钥等等


1. 测试联调:分配测试的密钥,测试环境的账户和密码以及其他信息


2. 上线:上线之后需要做什么事情,如:替换生产url,替换生产环境账户密码,替换密钥为生产密钥等等


使用协议 + 规范:


可以是本次对接使用的算法,通信协议,可以是术语说明或者和业务相关的其他说明,以及对接的要求都可以,发挥空间很大,自由设计。


报文规范:


报文规范是接口对接的核心部分,因为对接大部分的时间基本都是花在接口参数调试和请求调试等。所以报文规范算是非常重要的内容。具体内容可以参考简单版本的接口描述,也可以使用目录格式进行对应的描述


+ 请求报文:主要为请求的Body,以及请求的header内容,一般都是Json的格式,并且要求UTF8编码

  + 响应报文:返回的格式和内容,也是需要协商的部分

  + 公共报文头:一般需要重复使用的参数可以作为公共报文头,但是不是所有的公共报文头都是必选,存在可选的参数

  + 接口码说明:描述接口的注意事项,以及那些字段参数需要重点关注,主要为提示信息

  + 业务接口:一般表示业务的返回结果,比如统一2000作为报文的成功响应码,其他所有码都是存在对应的接口码表进行设计。

  + 查询接口:如何才算是表示查询成功,比如一个还钱的接口当中可能是受理中,拒绝或者处理完成,等查询接口的信息描述

1.

2.

3.

4.

5.

6.

加解密规范:


也是比较重要的部分,也是比较花时间的地方,需要大量调试来打通接口的地方,存在以下的几个要点


原则:接口存在一些简单的原则,比如非对称加密,数字签名,时间戳判断有效性,具体按照接口的原则自由设置

令牌信息:描述令牌是如何生成的,是比较重要的部分,一般由对接双方沟通完成,最好多以案例和代码辅助解释

加密规范:描述接口数据的加密过程,比较重要的内容信息,最好多以案例和代码辅助解释

解密规范:就是解释接口要如何解密,比如需要拿到服务端给过来的配对公钥才能解密,再比如使用签名+参数进行对照加密验证签名是否正确等。

加解密规范参考:

一般的加密方式,一般情况下做到下面这种形式基本可以屏蔽大部分的攻击:


按照map的key进行字典排序,同时加入timetamp值校验核对时间

把参数按照一些特殊形式拼接为key=value&key=value的形式,末尾带入时间戳或者其他的一些信息,比如应用Id等核实身份的内容

把这一串按照AES加密,然后按照BASE64编码,生成一个编码串

把BASE64编码进行MD5加密,加密完成之后,得到固定长度的MD5字符串

按照md5串+上面的string在进行一次md5加密,生成签名,那么这个签名基本上就唯一的

业务接口


这里基本可以照抄简单接口模板,因为接口描述每个人的描述不同,下面给出一些基本上涉及的点,另外,到了这一步就尽量用案例辅助,因为案例可以帮助接口阅读者更快速的上手和理解,注意这一部分的内容:实用性大于理论性


具体接口:


说明

规范码(查表)

使用方式

请求字段

响应字段

案例

附录:


可能这部分和说明书一样基本没人看,所以不做过多的解释,个人到目前为止看过的接口文档基本没有遇到附录写的很详细的,这里可以随意施展。


总结:

本篇文章将接口文档分为两种模式来讲解:


简单版本:核心是怎么简单怎么来,如何工程紧或者非常讨厌写文的人可以使用这种方式,优点是出货速度快,缺点嘛,简单的东西可能造成很多细节的忽略,有时候写文的人也会忽略,所以还是需要多注意一下不要直接CV

复杂版本:我想基本没几个人想写这种复杂文档,一份文档写下来基本半天没了,

个人还是非常喜欢写文档的,一方面是写文档可以提高自己的文档功底,同时和费曼学习法的方式十分的贴切,可以通过写作来回顾和总结思路过程,另一方面,一份好文档真的可以省未来的时间成本,想象一下如何你可以在当别人来问你就甩一份文档解决问题的时候,可以给自己大量的时间减少自己的沟通成本,对于日常工作中被打断思路再常见不过了,用文档记录的形式记录可能在以后要回过来改代码的救一命。

以上就是小编为大家整理的接口设计文档-前端接口文档


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python数据处理与分析(汇总)(Python数据分析与处理)
下一篇:python实现前后端分离开发(基于前后端分离)
相关文章

 发表评论

评论列表

2022-10-12 14:43:17

一直在找接口设计文档的方法,这篇文章讲的很全面清晰,感谢作者