springboot api文档_SpringCloud/SpringBoot - 自动生成API文档

SpringCloud/SpringBoot 的项目一定要前后分离,这就需要一个API文档生成的工具,后端一定要和前端或者是移动端对接接口,那么问题来了,接口是不是要自己写给他们看,一般的会采用Excel或者Word来写,高级一点的就采用API管理平台手工录入,一个项目有上千上万个接口,天啊,这是多么大的工作量,在接口维护的时候更加痛苦,为了解决这样的事我们可以借助 japi 这个项目来完成RESTFul文档的自动生成,完全基于注释生成,更多详细配置可参考开源项目https://github.com/dounine/japi。

412322d3680fd55e875d604451b876e6.png

使用说明

克隆项目下来

git clone https://github.com/dounine/japi.git

编译打包

cd japi/javagradle install -xtest

运行JAPI后台管理

cd japi/javagradle bootRun

运行JAPI文档界面

cd japi/nodenode app.js

生成RESTFul文档

maven项目

com.dounine.japi client 1.0

gradle项目

compile group: 'com.dounine.japi', name: 'client', version: '1.0'

编辑resources/japi.properties配置文件

japi.name=testjapi.uuid=43a600877430438596de3d330e4bd06ejapi.version=1.0.0japi.author=lakejapi.url=http://192.168.0.123:8080japi.description=this is project description.japi.createTime=2017-02-23 10:44:44japi.icon=/home/lake/github/japi/html/img/logo.pngjapi.server=http://192.168.0.179:7778japi.server.username=japijapi.server.password=japi123

编写一个action

/** * 获取用户列表 * @param user 用户信息 * @return class User * @version v2 */@GetMapping(value = "v2/list")public Result hots(@Validated({User.UserDEL.class}) User user) throws RuntimeException { return null;}

编写一个API生成类

JapiCreateTest.java

@Test public void testCreate(){ JapiClient.setPrefixPath("/home/lake/github/test-japi/java/");//项目路径前缀 JapiClient.setpostfixPath("/src/main/java");//项目路径后缀 JapiClient.setProjectJavaPath("client");//主项目地扯 JapiClient.setActionReletivePath("com/dounine/test-japi/action");//相对主项目action包所在路径 //JapiClient.setIncludeProjectJavaPath(new String[]{"api"});//主项目中关联的其它项目包路径 JapiClient.setIncludePackages(new String[]{"com.dounine.test-japi"});//关联的包,用于准确快速搜索 JapiClient.saveHistory(true);//是否保留本地历史版本 JapiClient.setFlushServer(false);//强制同步本地与服务器所有的版本(会先删除服务器以前的历史版本) IProject project = ProjectImpl.init(); JapiClientStorage japiClientStorage = JapiClientStorage.getInstance(); japiClientStorage.setProject(project); japiClientStorage.autoSaveToDisk();//自动使用到本地磁盘==> 用户目录/.japi-client/ new JapiClientTransfer().autoTransfer(japiClientStorage);//文件传输到主服务器. }

最后访问浏览器 http://localhost:7777

就可看到RESTFul文档登录

3213bcdf71de260480a6f0ff5ffbe56f.png

登录界面

使用自己的帐号登录就可以看到所有项目

f7890e27d635f8afe32cd8c57c92ceda.png

模块列表

进入项目看详细RESTFul接口

d3d230a78a575c5b6c9c8e58a23c1235.png

模块接口

使用场景

JAPI最适合在SpringCloud这样的分布式多模块项目中使用,内置强大的正则表达式,这会让代码注释更加规范,区别于Swigger这类使用侵入式注解生成文档的,JAPI是完全基于标准注释生成的,支持强大的JSR303或者是自定义注解。

开源精神

JAPI已完全开源

最后

每天发布更多新鲜有含量的技术文章、总有一款适合你。

快关注我、把我打包带走。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

语法手册_程序员必备——SQL语法速成手册

一、基本概念数据库术语数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) - 某种特定类型数据的结构化清单。模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据&#xff0…

devtools的ctrl加r_Chrome DevTools调试技巧

【1】DevTools触发伪类右键单击Elements面板中的元素节点并选择“ force state ”。或者在Sytle子窗格中单击“:hov ”图标。可以触发元素上的伪类来研究元素在悬停时的效果和样式​【2】DevTools-在任何网页上运行预定义的代码片段DevTools中有一个叫做代码段的特性…

JAVA入门级教学之(public class和class的区别)

目录 JAVA入门级教学之(public class和class的区别) 1.public class 和 class 的区别: 2.public class 类名A{ }的 类名A需要和源文件 类名 保持一致 总的来说: JAVA入门级教学之(public class和class的区别&…

c 程序中的注释相当于空白字符_Python专题 | (三)注释、变量与输出

小伙伴们,大家好呀,欢迎回到我们的python专题。前两篇文章已经把编程简单的知识和大家介绍过了,今天我们正式开始学习python语法。第一个python程序我们在第一篇文章中介绍pycharm的安装时曾给大家展示过这样的一段代码:print(&qu…

mysql添加timestamp有什么用_mysql中timestamp的使用

mysql中timestamp的使用mysql> CREATE TABLE t1 (-> id mediumint(9) NOT NULL auto_increment,-> name char(11) default NULL,-> rq timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,-> PRIMARY KEY (id)-> ) ;Query OK, 0 rows…

JAVAWEB企业级开发关于Tomcat的安装和配置

首先,我们来了解一下什么是JSP:动态网页 静态:规定不会变化 动态:随着时间、地点、用户操作改变而改变 1.动态网页: 需要使用到 服务器端脚本语言(JSP) 2.使用的架构: CS:Client Server 不足…

mysql api 连接池_SpringBoot-整合HikariCP连接池

HikariCP连接池概述池化思想 池化思想是我们项目开发过程中的一种非常重要的思想,如整数池,字符串池,对象池、连接池、线程池等都是池化思想的一种应用,都是 通过复用对象,以减少因创建和释放对象所带来的资源消耗&…

JAVAWEB入门tomcat服务器配置

1.配置&#xff1a; 部署项目的方式&#xff1a; 一、直接新建一个项目hello文件放到webapps目录下即可 C:\apache-tomcat-8.5.45\webapps\hello 再在hello文件中编辑hello.html 测试内容如下 <font colorred>hellotomcat </font> 接下来在网页的搜索栏输入 …

steam成就解锁器_MC技术指南如何使用SAM成就解锁?

点击蓝字关注我哦核心内容提前看:本文教大家如何轻松配置使用SAM程序&#xff0c;主要教大家如何正确使用。不正当的操作&#xff0c;可能会受到小红信&#xff0c;同时建议非必要情况下手动解锁成就更有乐趣。请下载群文件中MillionClub整合工具 SAM软件小百科&#xff1a;SA…

JAVAWEB入门第一篇

Servlet: server applet 概念&#xff1a;运行在服务器的小程序 所以Servlet就是一个接口&#xff0c;里面定义了java类被浏览器访问到(tomcat识别)的规则。 将来我们自定义一个类&#xff0c;实现Servlet接口&#xff0c;复写方法 在src路径下新建一个包cn.itcast.web.ser…

JAVAWEB入门之Sevlet的执行原理

上一节我们学习了快速入门&#xff0c; 但是里面的问题是ServletDemo1里面既没有创建对象&#xff0c;又没有写方法&#xff0c;竟然就被执行了&#xff0c;为什么呢&#xff1f; 我们来分析一下Sevlet的执行原理 1.当服务器接收到客户端浏览器的请求后&#xff0c;会解析请求…

JAVAWEB入门之Servlet的注解配置

1.我们发现&#xff0c;配置servlet很麻烦&#xff0c;要一直在web.xml里面配置<servlet></servlet> 因此官方给了我们一个新的版本servlet3.0 好处&#xff1a;支持注解配置。可以不用web.xml了 步骤&#xff1a;1.创建javaEE项目&#xff0c;选择Servlet的版本…

JAVAWEB入门之IDEA与tomcat相关配置

IDEA与tomcat相关配置 IDEA会为每一个tomcat部署的项目单独建立一份配置文件&#xff0c;查看启动项目后的控制台的log&#xff1a;Using CATALINA_BASE: "C:\Users\14811\.IntelliJIdea2017.1\system\tomcat\_test2"打开这个文件路径后&#xff0c;我们发现里面有…

mysql 自增id replace_MySQL--REPLACE INTO与自增

####测试环境&#xff1a;MySQL版本&#xff1a;MySQL 5.7.19复制模式&#xff1a;ROW####执行下面操作&#xff1a;##测试脚本&#xff1a;CREATE TABLET_AUTO_TEST(IDINT AUTO_INCREMENT PRIMARY KEY,C1INT NOT NULL,UNIQUE KEYUNI_C1(C1))INSERT INTO T_AUTO_TEST(ID,C1)VAL…

JAVAWEB入门之Servlet_体系结构

我们建的这个类要继承复写Servlet的所有方法&#xff0c;但是这会很麻烦&#xff0c;所有的写出来很繁琐当摆设&#xff0c;所以我们想&#xff0c;可不可以定义一个类&#xff0c;然后继承这些类和方法&#xff0c; Servlet的体系结构&#xff0c; Servlet----接口----爷爷 …

JAVA入门级教学之HTTP

HTTP概念&#xff1a;Hyper Text Transfer Protocol 超文本传输协议 传输协议&#xff1a;定义了客户端和服务器端通信时发送数据的格式 特点&#xff1a;1.基于TCP/IP的高级协议&#xff0c;要经过三次握手&#xff0c;说明也是一种安全的协议 2.默认端口号是80 http://…

mysql 取年月日 语句_MySQL学习从这里出发!

MySQL数据库开发学习中&#xff0c;想满足一些需求&#xff0c;无疑需要经常与数据打交道&#xff0c;例如&#xff0c;我们在使用IO的一些技术的时候&#xff0c;常常需要将一些数据存储到外部文件&#xff0c;可能大家会问&#xff0c;我们初学的时候常常会简单的保存一些数据…

JAVAWEB入门之Requset原理

Request 1.request和respinse对象的原理 request和respinse对象是由服务器创建的&#xff0c;我们只是使用他们 request对象是来获取请求消息&#xff0c;response是来设置响应消息 3.request对象的继承体系结构&#xff1a; ServletRequest-------接口 继承 HttpServlet…

mysql事务编号_Mysql事务

一&#xff1a;mysql事务1.需求从orders表中查询最新的销售订单编号&#xff0c;并使用下一个销售订单编号作为新的销售订单编号。在指定客户的orders表中插入新的销售订单。将新的销售订单项目插入orderdetails表中。从orders表和orderdetails中获取数据以确认更改。如果由于数…

java try catch 例子_java try catch

try catch机制非常好。那些觉得try catch不行的人&#xff0c;是他们自己的水平有问题&#xff0c;无法理解这种机制。并且这群人写代码不遵守规则&#xff0c;喜欢偷懒&#xff0c;这才造成try catch不好的错觉。详细解释&#xff1a;1.程序要健壮&#xff0c;必须要设计报错机…