在日常开发中,最容易被吐槽的就是代码写的烂,没有注释鬼知道你这个是什么意思啊?

另一个就是文档不齐全,这些接口是干嘛的?参数是什么意思?等等问题。

归根到底还是没有严格的开发规范,最重要的还是要有方便的工具来帮助我们落地这些规范。

今天给大家推荐一个开源的API管理工具,如果还没有用上的感觉看看吧。

YAPI

YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

主页:http://yapi.demo.qunar.com/

GitHub:https://github.com/YMFE/yapi

特性

  • 基于 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

集成

在Spring Boot中可以使用开源的starter包来进行集成会更简单,比如我们用spring4all的这个封装,Maven依赖如下:

<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.1.RELEASE</version>
</dependency>

依赖加好后在启动类上加@EnableSwagger2Doc来启用Swagger。

使用

使用的话就不具体讲解了,也比较简单,就是在你的接口上加一些注解来描述这个接口是干嘛的就可以了。

默认不加注解也能将你的接口全部显示出来,也就是扫描了你的@RestController中的方法。

主页面

接口列表

有可能会遇到的问题

一般我们会在项目中进行全局的异常处理,当发生错误时,将异常捕获然后转换成固定的格式响应给调用方,这样可以统一API的数据格式。

我们会配置下面的内容,告诉SpringBoot 不要为我们工程中的资源文件建立映射,这样就可以返回纯JSON的内容。

spring.resources.add-mappings=false

但是这样的话我们的swagger-ui.html就不能访问了,所以需要对swagger-ui.html相关的资源单独进行映射。

@Configuration
public 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/

GitHub:https://github.com/star7th/showdoc

我们可以用ShowDoc来做API文档,数据字典,说明文档等用途。可以自己进行部署,个人的话也可以使用官方提供的在线示列。

ShowDoc支持权限管理,支持markdown编辑,支持导出,支持分享等功能。

API文档

数据字典

CRAP-API

CRAP-API是完全开源、免费的API协作管理系统。提供协作开发、在线测试、文档管理、导出接口、个性化功能定制等功能。

主页:http://api.crap.cn/

GitHub:https://github.com/EhsanTang/ApiManager

特性

  • 简单高效的BUG管理系统,记录每一次变动
  • 团队协作、权限控制、修改日志
  • 数据库表、markdown、restful、mock、pdf、word
  • 开源chrome插件,支持跨域、本地、在线接口调试
  • 系统完全免费、完全开源

API管理

新增API

数据字典

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

为我开发的API添加华丽的外衣的更多相关文章

  1. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  2. flask开发restful api系列(8)-再谈项目结构

    上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...

  3. flask开发restful api

    flask开发restful api 如果有几个原因可以让你爱上flask这个极其灵活的库,我想蓝图绝对应该算上一个,部署蓝图以后,你会发现整个程序结构非常清晰,模块之间相互不影响.蓝图对restfu ...

  4. Spring Boot入门(四):开发Web Api接口常用注解总结

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...

  5. 使用egg.js开发后端API接口系统

    什么是Egg.js Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本.详细的了解可以参考Egg.js的官网:https:// ...

  6. 使用Spring MVC开发RESTful API

    第3章 使用Spring MVC开发RESTful API Restful简介 第一印象 左侧是传统写法,右侧是RESTful写法 用url描述资源,而不是行为 用http方法描述行为,使用http状 ...

  7. 使用Jax-rs 开发RESTfull API 入门

    使用Jax-rs 开发RESTfull API 入门 本文使用 Jersey 2开发RESTfull API.Jersey 2 是 JAX-RS 接口的参考实现 使用到的工具 Eclipse Neon ...

  8. 用java开发dota英雄最华丽的技能

     爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import ...

  9. 基于VS Code创建Spring Boot项目开发REST API(一)

    公司从.NET转向Java不仅仅是简单的代码变成Java,趁此机会对原有的架构和代码重构,融入新的概念和技术.目前通过前后端分离,将后端更多的微服务化.从.NET转向Java我们更多的是用Java开发 ...

随机推荐

  1. Nginx笔记总结二:Nginx编译参数

    -prefix=                                                    安装路径-with-http_ssl_module               ...

  2. 1078 Hashing (25 分)

    1078 Hashing (25 分) The task of this problem is simple: insert a sequence of distinct positive integ ...

  3. 面试的绝招(V1.0)

    <软件自动化测试开发>出版了 测试开发公开课培训大讲堂 微信公众号:测试开发社区 测试开发QQ群:173172133 咨询QQ:7980068 咨询微信:zouhui1003it

  4. Shevon's Blog

    由于a link是disabled属性设置成true,只是颜色变灰色但是还能提交.要想不能提交,可以删除href属性:disable link[html] view plaincopyfunction ...

  5. -scp Linux之间复制文件和目录

    scp 简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速 ...

  6. 微信小程序采坑之scroll-view

    当设置了scroll-y为true之后,纵向是没有问题的,会出现滚动条. Android上一切都是那么的祥和, ios上你会发现如果你scroll-view里面的东西超过横向的宽度时,就会隐藏了. 也 ...

  7. 死磕Lambda表达式(二):Lambda的使用

    城市就是森林,每一个男人都是猎手,每一个女人都是陷阱.--<三体> 在哪使用Lambda表达式? 在上一篇文章(传送门)中介绍了Lambda表达式的基本语法,其中的举了一个Lambda表达 ...

  8. PAT-字符串处理-B1006 换个格式输出整数 (15分)

    题目描述: 让我们用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数.例如 234 应该被输出为 ...

  9. 【猫狗数据集】pytorch训练猫狗数据集之创建数据集

    猫狗数据集的分为训练集25000张,在训练集中猫和狗的图像是混在一起的,pytorch读取数据集有两种方式,第一种方式是将不同类别的图片放于其对应的类文件夹中,另一种是实现读取数据集类,该类继承tor ...

  10. python小白入门

    阅读目录 一python介绍 二安装python解释器 三第一个python程序 四变量 五用户与程序交互 六基本数据类型 七格式化输出 八基本运算符 九流程控制之if...else 十流程控制之wh ...