阅文时长 | 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. 剑指 Offer 03. 数组中重复的数字

    剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知 ...

  2. AI数学基础之:确定图灵机和非确定图灵机

    目录 简介 图灵机 图灵机的缺点 等效图灵机 确定图灵机 非确定图灵机 简介 图灵机是由艾伦·麦席森·图灵在1936年描述的一种抽象机器,它是人们使用纸笔进行数学运算的过程的抽象,它肯定了计算机实现的 ...

  3. 北航OO第一单元作业总结(Retake)

    前言:当我写这篇博客的时候,我的心情是复杂的,因为这实际上是我第二次写这篇博客--我今年重修的这门课.我对去年的成绩心有不甘--在激烈的竞争下,我虽然尽可能完成了所有作业(仅一次作业未通过弱测),但爆 ...

  4. Java 在Excel中添加水印(单一水印、平铺水印)

    在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...

  5. SpringBoot - yml写法

    1 #区分大小写 2 server: 3 port: 8081 4 path: hello 5 6 #字面量:普通的值(数字,字符串,布尔): 7 #字符串:双引号 - 不转义 单引号 - 转义 8 ...

  6. Go-08-函数与指针

    Go语言的函数本身可以作为值进行传递,既支持匿名函数和闭包,又能满足接口. 函数声明 func 函数名 (参数列表)(返回参数列表){ // 函数体 } func funcName(parameter ...

  7. MySQL的半同步是什么?

    前言 年后在进行腾讯二面的时候,写完算法的后问的第一个问题就是,MySQL的半同步是什么?我当时直接懵了,我以为是问的MySQL的两阶段提交的问题呢?结果确认了一下后不是两阶段提交,然后面试官看我连问 ...

  8. Day14_75_反射(reflect)

    反射 反射的基本概念 反射是由Smith在1982年首次提出,主要是指程序可以访问,检测,修改它本身状态或行为的一种能力.并且能够根据自身行为的状态或结果,调整和修改所描述行为的状态和相关语义. ja ...

  9. Hangfire在ASP.NET CORE中的简单实现方法

    hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...

  10. 关于Spring Boot 多数据源的事务管理

    自己的一些理解:自从用了Spring Boot 以来,这近乎零配置和"约定大于配置"的设计范式用着确实爽,其实对零配置的理解是:应该说可以是零配置可以跑一个简单的项目,因为Spri ...