为我开发的API添加华丽的外衣
在日常开发中,最容易被吐槽的就是代码写的烂,没有注释鬼知道你这个是什么意思啊? … Read More
Socrates
在日常开发中,最容易被吐槽的就是代码写的烂,没有注释鬼知道你这个是什么意思啊?
另一个就是文档不齐全,这些接口是干嘛的?参数是什么意思?等等问题。
归根到底还是没有严格的开发规范,最重要的还是要有方便的工具来帮助我们落地这些规范。
今天给大家推荐一个开源的 API 管理工具,如果还没有用上的感觉看看吧。
YAPI
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
主页:http://yapi.demo.qunar.com/[1]
GitHub:https://github.com/YMFE/yapi[2]
特性
- 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
- 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
- 类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期 望数据
- 支持 postman, har, swagger 数据导入
- 免费开源,内网部署,信息再也不怕泄露了
主页面

API 基本信息

参数和响应

Swagger
介绍
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可让人和计算机拥有无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。
GitHub:https://github.com/swagger-api[3]
集成
在 Spring Boot 中可以使用开源的 starter 包来进行集成会更简单,比如我们用 spring4all 的这个封装,Maven 依赖如下:
依赖加好后在启动类上加@EnableSwagger2Doc 来启用 Swagger。
使用
使用的话就不具体讲解了,也比较简单,就是在你的接口上加一些注解来描述这个接口是干嘛的就可以了。
默认不加注解也能将你的接口全部显示出来,也就是扫描了你的@RestController 中的方法。


有可能会遇到的问题
一般我们会在项目中进行全局的异常处理,当发生错误时,将异常捕获然后转换成固定的格式响应给调用方,这样可以统一 API 的数据格式。
我们会配置下面的内容,告诉 SpringBoot 不要为我们工程中的资源文件建立映射,这样就可以返回纯 JSON 的内容。
spring.resources.add-mappings=false
但是这样的话我们的 swagger-ui.html 就不能访问了,所以需要对 swagger-ui.html 相关的资源单独进行映射。
@Configurationpublic class WebAppConfigurer extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");super.addResourceHandlers(registry);}}
ShowDoc
ShowDoc 是一个非常适合 IT 团队的在线 API 文档、技术文档工具。
主页:https://www.showdoc.cc/[4]
GitHub:https://github.com/star7th/showdoc[5]
我们可以用 ShowDoc 来做 API 文档,数据字典,说明文档等用途。可以自己进行部署,个人的话也可以使用官方提供的在线示列。
ShowDoc 支持权限管理,支持 markdown 编辑,支持导出,支持分享等功能。
API 文档


数据字典

CRAP-API
CRAP-API 是完全开源、免费的 API 协作管理系统。提供协作开发、在线测试、文档管理、导出接口、个性化功能定制等功能。
主页:http://api.crap.cn/[6]
GitHub:https://github.com/EhsanTang/ApiManager[7]
特性
- 简单高效的 BUG 管理系统,记录每一次变动
- 团队协作、权限控制、修改日志
- 数据库表、markdown、restful、mock、pdf、word
- 开源 chrome 插件,支持跨域、本地、在线接口调试
- 系统完全免费、完全开源
API 管理

数据字典
数据字典还支持生成 MyBatis 的 XML 文件,生成 Java 的 Entity 对象。

参考资料
[1]
http://yapi.demo.qunar.com/: http://yapi.demo.qunar.com/[2]
https://github.com/YMFE/yapi: https://github.com/YMFE/yapi[3]
https://github.com/swagger-api: https://github.com/swagger-api[4]
https://www.showdoc.cc/: https://www.showdoc.cc/[5]
https://github.com/star7th/showdoc: https://github.com/star7th/showdoc[6]
http://api.crap.cn/: http://api.crap.cn/[7]
https://github.com/EhsanTang/ApiManager: https://github.com/EhsanTang/ApiManager
相关文章
Vercel推出了用于构建无头应用的v0 API版本
Vercel已经正式推出了v0 API,这使得开发人员和AI应用能够通过API调用来程序化地生成、迭代、预览以及部署各种应用程序。 作者:Daniel Dominguez
阅读全文
Azure API管理新增了专用AI网关层级、模型管理工具以及MCP相关工具
微软发布了Azure API Management中的专门用于处理AI相关请求的层级功能,并将其置于公开测试阶段。这一层级的核心架构是围绕模型、MCP服务器以及相关工具来构建的,而非基于API本身。它将Foundry、Bedrock、Vertex AI以及OpenAI等服务统一通过一个终端点提供访问接口,且配置管理采用政策卡片的形式进行,而非XML格式。架构师们对这种整合表示欢迎,但同时也质疑相关的治理边界应该如何划定。 作者:Steef-Jan Wiggers
阅读全文
ETL流程构建手册:如何使用Python搭建一套可用于生产环境的高效流程系统
要追踪洪水风险,需要一样虽然不起眼但却至关重要的东西:干净且结构清晰的数据。 在本教程中,你将亲手构建一个数据处理流程。你会创建一个Python ETL(提取、转换、加载)流程,该流程会从法国官方开放的水文数据API Hub'Eau 中获取每日的水位数据。然后,你需要对这些数据进行清洗,并将其发布为公共数据集,就像 实时版本 所做的那样。 本教程基于一个实际存在的流程系统——该系统每周会按计划自动运行一次,从而确保 巴黎洪水数据集 能够得到及时更新。 不过,你并不会只是简单地复制和粘贴代码。真正的目标是理解这个流程为何能以这样的方式运作。你会了解到,那些让一个脚本能够仅运行一次,却能让另一个脚
阅读全文
Java新闻汇总:简单的JSON接口、JDK 28的相关提案、Oracle的CPU产品、Embabel 1.0版本、Azul Payara框架以及Helidon项目
本周发布的2026年7月20日Java新闻汇总主要包括以下内容:两项针对JDK 28提出的JEP提案;新的JEP 540和JEP 541,分别涉及“简单JSON API”功能以及淘汰macOS/x64平台版本的相关计划;2026年7月的关键补丁更新;Embable 1.0版本的正式发布;Azul Payara 7.2.0及Helidon 4.5.1的最新进展。 作者:Michael Redlich
阅读全文