一份规范的接口文档应该包含哪些

小课堂

分享人:蒋新益

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

什么是接口文档?

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

2.知识剖析

为什么要写接口文档?

1、项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发

2、项目维护中或者项目人员更迭,方便后期人员查看、维护

接口规范是什么?

首先接口分为四部分:方法、uri、请求参数、返回参数

1、方法:新增(post) 修改(put) 删除(delete) 获取(get)

2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。

3、请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填

字段是类的属性;说明是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填。

4、返回参数结构有几种情况:1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数;2、如果要返回某些参数,则有两个结构体:1是code/mesage/data,2是data里写返回的参数,data是object类型;3、如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。

注意:uri地址里不允许出现大写字母,如果是两个单词拼接,用/分开

3.常见问题

衡量接口文档的标准是什么

4.解决方案

1. 拼写要准确

接口函数一旦发布就不能改了,要保持兼容性,拼写错误也不能改了,所以要仔细检查拼写,否则会被同行嘲笑很多年。

2. 不仅是英文单词不要拼错,时态也不要错。

比如:返回bool的判断函数,单数要用 is 复数要用are,这样你的命名就和文档中的描述保持了一致性。表示状态的变量或者函数要注意时态,比如 onXxxxChanged 表示xxx已经变化了,isConnecting表示正在连接。 正确的时态可以给使用者传递更丰富的信息。

3.函数最好是动宾结构

动宾结构就是 doSomething,这样的函数命名含义明确

比如: openFile, allocBuffer, setName

如果这个函数的动词宾语就是这个对象本身,那么可以省略掉宾语

4. 属性命名最好是定语+名词

比如 fileName, maxSize, textColor

5. 不要用生僻单词,这不是秀英语的地方,也不要用汉语拼音

比如:rendezvous,估计大多数人要去查词典才知道什么意思,这个词源自法语,是约会的意思。Symbian

OS里有个用它命名的函数,开发Symbian的是英国人,也许人家觉得很平常吧,反正我是查了词典才知道的。

6. 不要自己发明缩写

除非是约定俗成已经被广泛使用的缩写,否则老老实实用完整拼写。

坏例子: count->cnt, manager->mngr password->pw button->btn

7. 保持方法的对称性

有些方法一旦出现就应该是成对的,比如有open就要有close,有alloc就要有free,有add就要有remove,这些单词基本是固定搭配的,使用者就很容易理解。

如果 open对应clear就有点让人困惑了。

8.站在使用者的角度去思考,API设计也要讲究用户体验。

好的API设计应该是符合直觉,能望文生义的,让使用者能用尽量简洁的代码完成调用。

5.编码实战

6.扩展思考

有什么推荐的接口管理工具吗

7.参考文献

参考一:如何设计出一些优雅的接口呢

参考二:什么是接口文档,如何写接口,有什么规范?

8.更多讨论

欢迎大家交流和讨论

鸣谢

感谢大家观看

BY : 蒋新益