阅文时长 | 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. 利用浏览器favicon的缓存机制(F-Cache)生成客户端浏览器唯一指纹

    利用浏览器favicon的缓存机制(F-Cache)生成客户端浏览器唯一指纹 首先介绍下: 这个技术出自 UIC论文:https://www.cs.uic.edu/~polakis/papers/so ...

  2. vue+element+oss实现前端分片上传和断点续传

    纯前端实现: 切片上传 断点续传 .断点续传需要在切上上传的基础上实现 前端之前上传OSS,无需后端提供接口.先上完整代码,直接复制,将new OSS里的参数修改成自己公司OSS相关信息后可用,如遇问 ...

  3. 开源项目月刊《HelloGitHub》第 60 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  4. UML相关汇总

    类图 类图是UML最常用的图之一,用于描述面向对象程序设计中,类.接口等结构之间的关系,如图 类图中涉及到以下几种类型的对象 UMLClass 如图中Class1,代表类 UMLOperation 如 ...

  5. 华为联运游戏或应用审核驳回:HMS Core升级提示语言类型错误

    问题描述 最近项目组应用集成华为的HMS Core SDK相关能力后,发布地区选择中国大陆,提交审核,华为审核驳回:在低于2.5.3版本的华为移动服务手机上启动时或调出支付时拉起升级提示为英文,正确的 ...

  6. 6.2set用法

    目录 1.set的定义 2.set容器内元素的访问 3.set常见使用的函数 set可以内部进行自动递增排序,且自动去除了重复元素 1.set的定义 set<typename> name; ...

  7. MySQL数据类型全解析

    1 概述 本文主要介绍了MySQL的各种数据类型,版本为8.x, MySQL的数据类型可以分为六类:数值类型,日期时间类型,字符串类型,二进制类型,JSON类型与空间数据类型. 2 数值类型 数值类型 ...

  8. GoTTY-K8S-Docker 终端

    安装GoTTY 下载yum源 curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo. ...

  9. Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 背景 使用 pytest-xdis ...

  10. Blog总结02(4~6次作业总结)

    Blog总结02(4~6次作业总结) 1.前言 (1)题目集04共有三道题目,第一题难度较大,第二题和第三题难度适中,第一题考察的知识点是 Java 中的字符串处理类以及正则表达式对输入字符串数据进行 ...