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,一经查实,立即删除!

相关文章

JAVA入门级教学之(classpath的配置)

目录 JAVA入门级教学之(classpath的配置) 1.打开DOS命令窗口,执行java HelloWorld 2.疑问?:为什么会出现找不到HelloWorld.class文件? 3.解释: JAVA入门级教学之(classpath的配置…

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

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

JAVA入门级教学之(JAVA注释)

目录 JAVA入门级教学之(JAVA注释) 1.关于java源程序中的注释: 2.java中的注释怎么写? JAVA入门级教学之(JAVA注释) 1.关于java源程序中的注释: 什么是注释?注释的作用是什么&…

JAVA入门级教学之(你是否理解HelloWorld的这段经典的代码的注释)

//public表示公开的 //class表示一个类 //HelloWorld表示一个类名public class HelloWorld{//表示一个公开的类,类名是HelloWorld//在这个大括号内写的是类体,类体中不能直接编写java语句【除声明变量之外】,否则会报错/*public表示公开的sta…

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…

JAVA入门级教学之(第一章总结)

总结第一章需要掌握的内容: 理解java的加载与执行能理解自己搭建的java开发环境(JDK)能够独立编写HelloWorld程序,编译并运行掌握环境变量path的原理以及如何配置掌握环境变量classpath的原理以及如何配置java中的注释public cla…

JAVA入门级教学之(标识符与关键字)

目录 JAVA入门级教学之(标识符与关键字) 1.什么是标识符? 2.标识符的命名规则? 3.标识符的命名规范? 4.严格遵守规则和规范: 在java里的关键字都是小写的 JAVA入门级教学之(标识符与关键字) 1.什…

birt project mysql_eclipse birt如何连接mysql数据库 配置文件

双击.rptdesign打开data explorer,右键点Data Sources -> New Data Sources ->JDBC Data Source到Next如果没有mysql-connector-java的包,请去下一个http://dev.mysql.com/downloads/connector/j/5.0.html然后在Driver Class这里就可以选 com.mysql.jdbc.Driv…

JAVA入门级教学之(变量)

目录 关于java语当中的变量: 1、什么是变量? 2、数据类型的作用? 3、变量要求 4、声明/定义变量的语法格式: 5、变量声明之后怎么赋值? 6、声明和赋值可以放到一起完成 7、变量赋值之后,可以重新赋值&…

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中设置字符_MySQL中设置默认字符集的方法

对于默认字符集,让我们看一下语法-CREATE DATABASE IF NOT EXISTS yourDatabaseNameDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ci;让我们实现以上语法以设置默认字符集UTF8-CREATE DATABASE IF NOT EXISTS instant_app-> DEFAULT CHARACTER SET u…

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…

git如何拉去开发的 最新代码_linux脚本拉取git代码并发布tomcat应用

1.安装git&#xff0c;mvn&#xff0c;具体安装步骤查看本人以往博文。2.进入对应的目录&#xff0c;(比如/home/workspace)执行以下脚本git clone -b 分支 http://git用户名:git密码AAAAAAAA/bbbbb/ccccccc.git或者 git clone -b 分支 http://AAAAAAAA/bbbbb/ccccccc.git第一…

JAVAWEB入门之Sevlet的执行原理

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