微服务·API文档
阅文时长 | | 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文档组件
- Swagger:开源;易上手;轻量级;RESTful风格;嵌入项目自动生成;UI简洁漂亮;不能保存参数;支持数据导出;适合前后端分离开发人员使用。
- YApi:开源;权限管理;支持Swagger、Postman等数据导入;已有大企业使用中;维护麻烦(但有解决方案);适合大规模团队使用。
- Postman:保存在Collection的API集合可生成API文档。可以更改此文档为开放文档或私有账号文档;功能有局限性;但可保存参数;适合测试人员使用。
总结:博主用过Swagger和Postman的API文档。觉得两者结合使用可以满足大部分需求。YApi体验过,感觉还可以,权限功能比较实用,也因此受到了大企业的青睐。
三、声明与参考资料 完成度:100%
原创博文,未经许可请勿转载。
如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。
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优化,敏捷的产品管理。 ︎
DX是代表了API的理想开发体验的评级。数字越高,分数越高,10代表完美。该指数包括13个独立的标准,每个标准根据重要性进行加权。其中最重要的因素是:在主流语言中使用的库;深入浅出的入门指南;自助解决方案(不需要"演示"或"呼叫我们");清晰的定价,让开发者知道它的成本; ︎
微服务·API文档的更多相关文章
- 微服务·API网关
阅文时长 | 3.52分钟 字数统计 | 1232字符 主要内容 | 1.什么是API网关 2.微服务中的API网关 3.几种部署策略 『微服务·API网关』 编写人 | SCscHero 编写时间 ...
- 同事跳槽阿里P7,甩我一份微服务架构设计模式文档,看完我也去
给所有微服务架构开发者的忠告,我想对你们说: 第一,要记住微服务不是解决所有问题的万能“银弹”. 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础. 第三,关注微服务的本质,即 ...
- 使用 Zuul 聚合多个微服务的 Swagger 文档
在 Spring Boot 中集成 Swagger 可参考之前的文章:Spring Boot 2 集成 Swagger, 在各个微服务中的配置与之相同:本文仅介绍在 Zuul 中的配置 在 Zuul ...
- 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档
前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...
- 微服务如何聚合 API 文档?这波秀~
今天这篇文章介绍一下微服务如何聚合Swagger实现接口文档管理. 文章目录如下: 为什么需要聚合? 微服务模块众多,如果不聚合文档,则访问每个服务的API文档都需要单独访问一个Swagger UI界 ...
- gateway聚合swagger3统一管理api文档
springboot微服务整合swagger3方法很简单,下文会演示.但是在分布式项目中如果每个微服务都需要单独的分开访问获取接口文档就不方便了,本文将详细讲解springcloud gateway网 ...
- spring boot / cloud (三) 集成springfox-swagger2构建在线API文档
spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...
- 微服务系列之Api文档 swagger整合
1.前言 微服务架构随之而来的前后端彻底分离,且服务众多,无论是前后端对接亦或是产品.运营翻看,一个现代化.规范化.可视化.可尝试的文档是多么重要,所以我们这节就说说swagger. Swagger是 ...
- 添加swagger api文档到node服务
swagger,一款api测试工具,详细介绍参考官网:http://swagger.io/ ,这里主要记录下怎么将swagger api应用到我们的node服务中: 1.任意新建node api项目, ...
随机推荐
- 2021年的UWP(6)——长生命周期Desktop Extension向UWP的反向通知
上一篇我们讨论了UWP和Desktop Extension间的双向通讯,适用于Desktop Extension中存在用户交互的场景.本篇我们讨论最后一种情况,与前者不同的是,Desktop Exte ...
- Redis实战篇(二)基于Bitmap实现用户签到功能
很多应用上都有用户签到的功能,尤其是配合积分系统一起使用.现在有以下需求: 签到1天得1积分,连续签到2天得2积分,3天得3积分,3天以上均得3积分等. 如果连续签到中断,则重置计数,每月重置计数. ...
- 【分布式】SpringCloud(3)--Eureka服务注册与发现
1.Eureka概述 1.1.什么是Eureka Eureka是Netflix的一个子模块.基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. 只需要使用服务的标识符,就可以访问到 ...
- 从阿里云迁移分布式redis实例到华为云解决方案(详细)
如果要换多数是经济因素啦- 一. 准备工作 先在华为云上买一台redis数据库,配置一定要注意多数要保持一致,至于4.0还是5.0倒问题不大亲测兼容 可用区要找现有ECS云主机中的相同的机器.记下:这 ...
- 第3 章 : Kubernetes 核心概念
Kubernetes 核心概念 本文整理自 CNCF 和阿里巴巴联合举办的云原生技术公开课的课时 3:Kubernetes 核心概念.本次课程中,阿里巴巴资深技术专家.CNCF 9个 TCO 之一 李 ...
- 3,turicreate入门 - 优化回归模型,使得预测更准确
turicreate入门系列文章目录 1,turicreate入门 - jupyter & turicreate安装 2,turicreate入门 - 一个简单的回归模型 3,turicrea ...
- [GDKOI2021] 普及组 Day2 总结
[ G D K O I 2021 ] 普 及 组 D a y 2 总 结 [GDKOI2021] 普及组 Day2 总结 [GDKOI2021]普及组Day2总结 时间安排和昨天的GDKOI2021 ...
- 在PHP7以上版本使用不了mysql扩展
旧程序使用了mysql扩展,而新环境却是PHP7以上版本,不支持mysql扩展,办法是将旧程序中的mysql相关内容修改为mysqli或PDO代码. 但是涉及修改的量大,那则可以包含(include ...
- BUAA_2020_OO_UNIT2_REVIEW
OO第二单元总结 1. 设计策略 总的来说,三次作业没有大的重构,都是使用了多线程进行电梯调度,输入线程和运行线程分离,主要的不同在于三次电梯调度器线程的数量有所不同,第一次为一个,第二次为n个,第三 ...
- 一文简述JAVA内部类和异常
内部类和异常 内部类 在一个类的内部定义的一个类,例如,A类中定义了一个B类,则B类相对于A类就是内部类,而A类相对于B类就是外部类 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 pub ...