阅文时长 | 3.92分钟 字数统计 | 2754.05字符
主要内容 | 1、什么是API文档
2、API文档的使用
3、声明与参考资料
『微服务·API文档』
编写人 | SCscHero 编写时间 | Thursday, December 3, 2020
文章类型 | 系列 完成度 | 待完善
座右铭 每一个伟大的事业,都有一个微不足道的开始。Hello World!

一、什么是API文档   完成度:100%

a) 广泛定义

由于在各个百科网站上没有给出准确定义,但不少大佬给了定义,以下是Keshav Vasudevan[1]给出的定义。

1.API文档,它为什么重要?

我们处在一个多平台的经济环境中,而api是数字环境的粘合剂。平台是用户可以为其他用户扩展的产品。任何产品都可以通过为用户提供在其上添加服务和功能的方法成为平台。api是平台经济的推动者,允许用户在现有产品上增强和添加服务。当一个产品转变为一个平台时,它就有了一种新的用户类型:第三方开发人员。迎合开发商的需求是很棘手的。他们善于分析、精确,并试图解决API的重要问题。他们希望了解如何有效地使用API,这就是API文档的作用所在

2.什么是API文档?

API文档是可交付的技术内容,包含关于如何有效地使用和集成API的说明。它是一个简明的参考手册,包含使用API所需的所有信息,以及关于函数、类、返回类型、参数等的详细信息,并支持教程和示例。API文档传统上是使用常规的内容创建和维护工具以及文本编辑器完成的。像OpenAPI/Swagger规范这样的API描述格式已经自动化了文档处理过程,使得团队更容易生成和维护文档。第三方开发人员是API的主要消费者,他们正忙于解决复杂的编程难题。对于技术用户来说,您的API是一种达到目的的手段,他们希望尽可能快地集成以推进软件开发,这意味着他们应该立即了解您的API的价值和用途。开发人员在发现、学习使用以及最终与API集成时积累的经验称为开发人员体验(DX[2])。API文档是一个高评级DX的关键。

3. 为什么使用API文档?

在API生命周期的所有阶段中,文档可能是增长最快的领域。对于围绕文档的工具生态系统来说,这一点尤其正确。注意到这种趋势很有趣,因为文档通常是开发人员在启动代码时很少关注的东西。事实上,实现代码要比编写好的文档容易得多。但这是因为它对采用和使用的直接影响。你可以拥有最好的,功能性的产品,但如果不知道如何使用,没有人会去使用它。文档是良好开发人员体验的基础。

----来自《Swagger官网》[3]

b) 个人理解

我对API文档理解是一个交付性成果,主要应用于前后端分离开发或者第三方API调用,并能增强API可维护性及可用性。在早前项目中(大概是2019年下半年),我们的项目就应用了Swagger,那时候只是简单使用,生成API文档,并苛求了自己写注释的习惯。对于其他功能,比如:API分组、自定义参数、Swagger导入Postman、分布式系统中网关集成文档,没有深入学习。因此,有了这篇博客总结沉淀一下。

二、API文档的使用   完成度:100%

a) 微服务下的API文档

单体架构下的API文档自然不必多说。但在分布式系统下的API文档,是否有所不同呢。此时我们需要了解微服务架构中的一个组件--API网关。我们需要将不同服务的API文档自动整合到一个项目中,这个项目可以是API网关,也可以是一个独立API文档管理系统(由任务调度器自动获取下游API数据,更新此系统)。


作为.Neter,博主会写一篇关于".NetCore3.1框架集成Ocelot+Swagger组件"的博客。

b) 常用的API文档组件

  1. Swagger:开源;易上手;轻量级;RESTful风格;嵌入项目自动生成;UI简洁漂亮;不能保存参数;支持数据导出;适合前后端分离开发人员使用。
  2. YApi:开源;权限管理;支持Swagger、Postman等数据导入;已有大企业使用中;维护麻烦(但有解决方案);适合大规模团队使用。
  3. Postman:保存在Collection的API集合可生成API文档。可以更改此文档为开放文档或私有账号文档;功能有局限性;但可保存参数;适合测试人员使用。

总结:博主用过Swagger和Postman的API文档。觉得两者结合使用可以满足大部分需求。YApi体验过,感觉还可以,权限功能比较实用,也因此受到了大企业的青睐。

三、声明与参考资料   完成度:100%

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。


  1. Keshav是技术领域公认的产品和市场领导者,对建立和发展基于SaaS的网络和移动应用程序充满热情。主导SmartBear软件两款成功SaaS产品的产品管理。帮助SwaggerHub的产品线增长了200%,并将其打造成了数百万美元的资产。专业领域包括产品管理、市场营销和数据分析,并倾向于将产品从测试版增长到规模化。有扎实的定量研究背景,了解大型复杂数据集的工作。获得 MEM 学位。技能:Adobe SiteCatalyst (Omniture),Mixpanel, MS Office, XLMiner, Solver, HTML/CSS, JQuery, AJAX, Spotfire, JIRA, Adobe Photoshop, Swagger/OpenAPI规范,Ruby on Rails,谷歌分析,SEO优化,敏捷的产品管理。

  2. DX是代表了API的理想开发体验的评级。数字越高,分数越高,10代表完美。该指数包括13个独立的标准,每个标准根据重要性进行加权。其中最重要的因素是:在主流语言中使用的库;深入浅出的入门指南;自助解决方案(不需要"演示"或"呼叫我们");清晰的定价,让开发者知道它的成本;

  3. Swagger官方文档

微服务·API文档的更多相关文章

  1. 微服务·API网关

    阅文时长 | 3.52分钟 字数统计 | 1232字符 主要内容 | 1.什么是API网关 2.微服务中的API网关 3.几种部署策略 『微服务·API网关』 编写人 | SCscHero 编写时间 ...

  2. 同事跳槽阿里P7,甩我一份微服务架构设计模式文档,看完我也去

    给所有微服务架构开发者的忠告,我想对你们说: 第一,要记住微服务不是解决所有问题的万能“银弹”. 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础. 第三,关注微服务的本质,即 ...

  3. 使用 Zuul 聚合多个微服务的 Swagger 文档

    在 Spring Boot 中集成 Swagger 可参考之前的文章:Spring Boot 2 集成 Swagger, 在各个微服务中的配置与之相同:本文仅介绍在 Zuul 中的配置 在 Zuul ...

  4. 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档

    前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...

  5. 微服务如何聚合 API 文档?这波秀~

    今天这篇文章介绍一下微服务如何聚合Swagger实现接口文档管理. 文章目录如下: 为什么需要聚合? 微服务模块众多,如果不聚合文档,则访问每个服务的API文档都需要单独访问一个Swagger UI界 ...

  6. gateway聚合swagger3统一管理api文档

    springboot微服务整合swagger3方法很简单,下文会演示.但是在分布式项目中如果每个微服务都需要单独的分开访问获取接口文档就不方便了,本文将详细讲解springcloud gateway网 ...

  7. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  8. 微服务系列之Api文档 swagger整合

    1.前言 微服务架构随之而来的前后端彻底分离,且服务众多,无论是前后端对接亦或是产品.运营翻看,一个现代化.规范化.可视化.可尝试的文档是多么重要,所以我们这节就说说swagger. Swagger是 ...

  9. 添加swagger api文档到node服务

    swagger,一款api测试工具,详细介绍参考官网:http://swagger.io/ ,这里主要记录下怎么将swagger api应用到我们的node服务中: 1.任意新建node api项目, ...

随机推荐

  1. DB性能瓶颈分析思路

    在性能分析过程中,经常遇到性能瓶颈出现在SQL的情况,此类问题通常可以分为两大类场景,一是SQL自身性能差导致的慢,如索引缺失.索引失效.统计信息不准确.SQL过于复杂等:二是由于外部原因等待导致的S ...

  2. 前端 | JS Promise:axios 请求结果后面的 .then() 是什么意思?

    Promise 是JS中一种处理异步操作的机制,在现在的前端代码中使用频率很高.Promise 这个词可能有点眼生,但你肯定见过 axios.get(...).then(res => {...} ...

  3. for what? while 与 until 差在哪?-- Shell十三问<第十三问>

    for what? while 与 until 差在哪?-- Shell十三问<第十三问> 最后要介绍的是 shell script 设计中常见的"循环"(loop). ...

  4. Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)

    简介 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 系列 云原生 API 网关,gRPC-Gateway V2 初探 业务流程 官方开发接入文档 ...

  5. Sql Server Report Service访问服务页面503解决方法

    这个问题可能性比较多,也有多个方案去解决,可以从如下方法里逐个测试 1.打最新的数据库补丁. 2.删除报表服务配置的密钥,重启报表服务. 3.修改报表服务器配置的用户账户为域管理员 4.找到报表服务器 ...

  6. Salesforce学习之路(九)Org的命名空间

    1. 命名空间的适用场景 每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件.否则,使用默认命名空间访问组件,系统默认的命名空间为"c". ...

  7. 破解class文件的第一步:深入理解JAVA Class文件

    摘要: java定义了一套与操作系统,硬件无关的字节码格式,这个字节码就是用java class文件来表示的,java class文件内部定义了虚拟机可以识别的字节码格式,这个格式是平台无关性的. j ...

  8. Day16_95_IO_循环读取文件字节流read()方法(四)

    循环读取文件字节流read()方法(四) 使用 int read(byte[] bytes) 循环读取字节流数据 import java.io.FileInputStream; import java ...

  9. 在Android的App中动态的加载Java类

    原文的地址:http://yenliangl.blogspot.com/2009/11/dynamic-loading-of-classes-in-your.html 我正在编写一个应用程序能够加载别 ...

  10. Windows API初练手 -- 疯狂写文件代码

    警告:恶作剧软件,慎用!仅供初学者研究代码所用!!! 提示:默认文件创建目录在"D:\test",如果需要使用的话请自行更改目录. 1. Windows API 版本 (调用系统函 ...