你还不会写API文档吗

关注功
• 阅读 357

一:API没人不了解吧

1.API浅谈

什么是API不会有人不知道吧?在步入软件研发之路之后,无论你是前端还是后端,还是测试,不会有人不知道什么是API吧!
三次握手四次挥手,这是什么?这就是API的本质。
当然,我们的日常开发途中,不会有人问你这个问题的,我们一般会说,我需要一个接口,这个接口想要实现什么功能。是的,这个接口就是API。

2.API普通规范

在协同开发中,我们需要有一套规范,才能够让前后端愉快的共同开发。因此,我们需要有一套接口规范,无论是内部严格的使用restful接口规范,还是对接外部某些三方会统一输出POST接口,这些都是团队对内部/外部约定俗成的规范。
此处,我不对以上两种接口输出规范做评价,各有各的规矩,各有各的好处,仁者见仁,智者见智。

3.开发遇到的api文档

基于最近有需求,需要对一个功能模块进行大改版,这个模块之前不是本人负责的,当需求确定之后,我对这个模块的接口进行了梳理(虽然有api管理工具),以便于确定需要对哪些接口进行改造或者新增某些接口。然而,在梳理过程中,我看到了这些问题。。。

二:这些问题怎么还会存在?

对了,先提一句,我们用的是apipost软件进行接口管理。

1.接口入参没有进行注释说明

这里有四五个入参没有进行说明?谁知道是什么参数呢?要不要传?

你还不会写API文档吗

2.重复属性的入参字段没有说明作用

比如下列两个字段goods_class 和good_class_group,两个字端明显一致,但是一个是字符串,一个是数组,可能想实现一个商品可以在多个分类下的需求,但是,如果这个字段是优化过的需求,那么,两个字段中必定是有一个是即将废弃的字段,此处,是需要注明TODO的。
而且,在后端的代码逻辑中,也没有找到这两个字段的TODO注释,这就对其他协同开发者形成了威慑,不知道是为什么,但是不敢动。

你还不会写API文档吗
 
你还不会写API文档吗

3.后端没有处理的入参

这个现象和第一个现象结合,简直是一个大💣,如下字段inventory,自我理解,这个字段指的是库存,在查询数据库文档之后,没错,就是这个意思,但是,后端并没有处理这个参数。
你以为问题就结束了?
不,问题还有...
这个神奇的字段,在数据库文档中存在,但是在代码model (用的是mongo数据库) 中不存在...
经过查询代码提交记录,找到相关人员,询问为什么?原来是,库存需求被其他方案替换了,不再数据库中存储了,只是,稍稍忘记了修改文档。。。

你还不会写API文档吗
 
你还不会写API文档吗

你还不会写API文档吗

4.后端无效的查询字段

熟悉webstorm的伙伴大家都知道这个灰色字体是什么意思吧,上下文中未引用的声明。
那么,这个api中的查询条件order_id就是无效的,很明显,如果前端传入了order_id,则,返回的数据一定是错的,因为,没有进行数据匹配。

你还不会写API文档吗

5.接口时间参数处理

在我们日常的开发途中,经常会有这么一种情况,需要查询某个时间段的数据,那么如下所示,有一个问题
23:59:59 < time < 00:00:00,time这一秒,数据没有被查询到。
这是一个很小的问题,但是也很容易被忽视。
其实只需要一个小小的修改,就可以避免这个问题,将lte改为lte改为lte改为lt,然后将$lt的时间修改为第二天的00:00:00即可。

你还不会写API文档吗

你还不会写API文档吗

三:怎么写好api文档

其实在不同的公司,api文档的输出方式是不同的,由于本人所在公司使用的是apipost软件进行api管理。那么这篇文章中就先来谈谈如何使用apipost进行api文档管理。

动态路由

使用标准的动态路由的写法,利于其他协作者共同开发,以及展示你参数的取值来源。善用路径变量,事半功倍。

你还不会写API文档吗

学会"锁定"API

apipost有一个锁定api的功能,在锁定之后,其他协作着能修改其中的参数,但是只能在自己本地修改,无法保存,这样就避免其他协作者误操作,将api修改的惨不忍睹。
api左侧还有一个api状态的选项,可以在api开发完毕之后修改为"已完成",约定为前端可调用。

你还不会写API文档吗

提取字段和描述

这个功能其实就是记录入/出参描述,但是这个描述,会自动获取“参数描述库”中的第一个描述,如果一个字段在不同的接口中代表不同的含义,就需要在提取时,进行检查。

你还不会写API文档吗

四:API文档延伸

不同的公司,使用的是不同的API管理工具,每个工具都有其实用的点,善于发现,善于使用。
当然,有更多的和其他公司合作的机会时,一个api接口的word文档,就很有必要了。那么,一个合格的接口word文档是怎么样的?可以查看以下文章!
juejin.cn/post/713723…

点赞
收藏
评论区
推荐文章
liam liam
3年前
美哭了,一款开发者必备的接口管理工具!
作为软件开发从业者,API调试是必不可少的一项技能,在这方面Postman做的非常出色。但是在整个软件开发过程中,API调试只是其中的一部分,还有很多事情Postman无法完成,或者无法高效完成,比如:API文档定义、APIMock、API自动化测试等等。Apifox就是为了解决这个问题而生的。接口管理现状一、常用解决方案1.使用
liam liam
3年前
先写API文档还是先写代码?
代码未动,文档先行其实大家都知道API文档先行的重要性,但是在实践过程中往往会遇到很多困难。程序员最讨厌的两件事:1.写文档,2.别人不写文档。大多数开发人员不愿意写API文档的原因是写文档短期收益远低于付出的成本,然而并不是所有人都能够坚持做有长期收益的事情的。作为一个前后端分离模式开发的团队,我们经常会看到这样的场景:前端开发和后端开发在一起
Script标签位置
不会吧,不会吧,前端人2021年了还有人把script标签放在标签中不合适了吧。是,你是可以把script放在中,但是你知道这意味着什么吗?兄嘚,意味着javascript代码都下载下来,解析和解释完成后在渲染你的页面,页面渲染延迟,浏览器窗口再次期间是空白的,大家都很忙的,兄嘚没人等你加载完啊。放在里面啊这样javascript处理之前,页面已经渲染完成了,显示空白页面的时间也就少了呀。
Aidan075 Aidan075
4年前
如何用python进行数据分析——00环境配置
↑一个宝藏公众号,长的好看的人都关注了 简单介绍一下Python吧Python是一种面向对象程序设计语言,由荷兰人吉多·范罗苏姆于1989年底发明。目前是最常用也是最热门的一门编程语言之一,应用非常广泛。(不是这个面对对象)为什么选择python呢?有人说python是万能的,除了生孩子不会,什么都会。有人说python是未来
捉虫大师 捉虫大师
3年前
4个实验,彻底搞懂TCP连接的断开
前言看到这个标题你可能会说,TCP连接的建立与断开,这个我熟,不就是三次握手与四次挥手嘛。且慢,脑海中可以先尝试回答这几个问题:四次挥手是谁发起的?如果断电/断网了连接会断开吗?什么情况下没有四次挥手连接也会断开?这不是面试,而是遇到了实际问题,至于是什么问题,容我先卖个关子,本文也不会解答,后面会有一篇专门的文章来说遇到的问题是啥,所以在讲实际问题
liam liam
3年前
为什么越来越多的开发者放弃使用Postman,而选择Apifox
一、API调试常用解决方案1、PostmanSwaggerMockJMeter作为一个后端开发,我做的大部分项目一般都是基于Swagger来管理API文档,基于Postman来做接口调试,基于JMeter来做接口性能测试,基于RAP等工具MockAPI数据。\2、存在的问题(1)多系统数据不互通API设计者、前
API 小达人 API 小达人
1年前
什么是 API?3分钟带你认识 API
无论是在科技行业还是其他地方,我遇到很多人对这个相当普遍的术语有着模糊的理解。从技术上讲,API代表应用程序编程接口,大多数大公司都曾为客户或内部使用构建过API。但如何用简单的语言来解释API呢?除了开发和商业中使用的定义外,是否还有更广泛的含义?首先,让我们退后一步看看网络本身是如何运作的。
幂简集成 幂简集成
6个月前
免费内容与资讯API优质资源清单
作为开发者,拥有一套免费的合集是必不可少的。这个开发者必备的免费API合集汇集了各种实用的API资源,为你的开发工作提供了强大的支持,而且完全免费!无论你是在构建网站、开发应用还是进行数据分析,这个合集都能满足你的需求。你可以通过这些免费API获取天气信息
京东云开发者 京东云开发者
6个月前
浅谈API错误码设计
作者:京东物流冯志文一、痛点你是否曾遇到过以下问题?1.API错误码形同虚设,无法提供有效帮助?2.API错误码文档晦涩难懂,别说其他团队,连团队内同事都看不明白?3.API错误码定义混乱,缺乏一致性?4.链路上的错误码信息无法正确传递?二、什么是错误码根
什么是API安全
本文分享自天翼云开发者社区《》,作者:姜悦API安全是指保护应用程序编程接口(API)免受攻击的做法,以确保API端点显示的数据、应用程序和服务的安全,同时保护其对合法用户的可用性。API安全不仅关注保护端点,还涉及整个API生命周期中网络交互的安全性,包