knife4j只用此插件的最简洁开发方式
一、POM添加
在pom文件里添加包
1 <!--引入knife4j以来-->
2 <dependency>
3 <groupId>com.github.xiaoymin</groupId>
4 <artifactId>knife4j-spring-boot-starter</artifactId> <version>1.9.6</version>
5 </dependency>
二、配置添加,相当于<bean>添加
1 package com.mrliu.undertow.conf;
2
3 import com.github.xiaoymin.knife4j.spring.annotations.EnableSwaggerBootstrapUi;
4 import org.springframework.context.annotation.Bean;
5 import org.springframework.context.annotation.Configuration;
6 import springfox.documentation.builders.ApiInfoBuilder;
7 import springfox.documentation.builders.PathSelectors;
8 import springfox.documentation.builders.RequestHandlerSelectors;
9 import springfox.documentation.service.ApiInfo;
10 import springfox.documentation.service.Contact;
11 import springfox.documentation.spi.DocumentationType;
12 import springfox.documentation.spring.web.plugins.Docket;
13 import springfox.documentation.swagger2.annotations.EnableSwagger2;
14
15 /**
16 * @author liuyang
17 */
18 @Configuration
19 @EnableSwagger2
20 @EnableSwaggerBootstrapUi
21 public class Swagger2Config {
22
23 /**
24 * 创建连接的包信息
25 * <p>
26 * 配置统一返回的controller路径RequestHandlerSelectors.basePackage
27 *
28 * @return 返回创建状况
29 */
30 @Bean
31 public Docket createRestApi() {
32 return new Docket(DocumentationType.SWAGGER_2)
33 .useDefaultResponseMessages(false)
34 .apiInfo(apiInfo())
35 .select()
36 .apis(RequestHandlerSelectors.basePackage("com.mrliu.undertow.controller"))
37 .paths(PathSelectors.any())
38 .build();
39
40 }
41
42
43 /**
44 * 设置文档信息主页的内容说明
45 *
46 * @return 文档信息
47 */
48 private ApiInfo apiInfo() {
49 return new ApiInfoBuilder()
50 .title("Project textBook API ")
51 .description("服务接口")
52 .termsOfServiceUrl("http://localhost:8001/")
53 .contact(new Contact("Mr Liu", "http://localhost:8999/", "liuyang@synway.cn"))
54 .license("what")
55 .version("1.0")
56 .build();
57 }
58
59 }
apiInfo()设置后会改变如图
三、bean实体类添加
1 /**
2 * @author Administrator
3 */
4 @ApiModel("用户对象")
5 @Data
6 public class UserVO {
7
8 @ApiModelProperty(required = true, notes = "用户名", example = "blues")
9 private String name;
10
11 @ApiModelProperty(required = true, notes = "用户返回消息", example = "hello world")
12 private String words;
13
14
15 public UserVO(String name, String words) {
16 this.name = name;
17 this.words = words;
18 }
19 }
主要是添加注解
@ApiModel("用户对象") -----实体类注解添加 添加后结果如图所示:
@ApiModelProperty(required = true, notes = "用户名", example = "blues") 字段注解添加 添加后结果如图所示:
四、Controller添加
- 1、GET方式访问
1 package com.mrliu.undertow.controller;
2
3 import com.mrliu.undertow.base.Results;
4 import com.mrliu.undertow.pojo.UserVO;
5 import io.swagger.annotations.*;
6 import org.springframework.web.bind.annotation.GetMapping;
7 import org.springframework.web.bind.annotation.PathVariable;
8 import org.springframework.web.bind.annotation.RequestMapping;
9 import org.springframework.web.bind.annotation.RestController;
10
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13 import java.io.IOException;
14
15 /**
16 * @author Administrator
17 */
18 @Api(tags = "HELLO CONTROLLER 测试功能接口")
19 @RestController
20 public class HelloController {
21
22
23 @ApiImplicitParams({
24 @ApiImplicitParam(name = "name",value = "用户名称",required = true,dataType = "String",paramType = "path",example = "blues")
25 })
26 @ApiResponses(value = {
27 @ApiResponse(code = 200, message = "接口返回成功状态"),
28 @ApiResponse(code = 500, message = "接口返回未知错误,请联系开发人员调试")
29 })
30 @ApiOperation(value = "Hello 测试接口", notes = "访问此接口,返回hello语句,测试接口")
31 @GetMapping("hello/{name}")
32 public Results<UserVO> hello(@PathVariable String name){
33 UserVO userVO = new UserVO(name,"hello " + name);
34 Results<UserVO> results = new Results<>(200,"SUCCESS", userVO);
35 return results;
36 }
37 }界面生成:
- 2、POST方式访问
1 @Api(tags = "HELLO CONTROLLER 测试功能接口")
2 @RestController
3 public class HelloController {
4
5
6 @ApiImplicitParams({
7 @ApiImplicitParam(name = "name",value = "用户名称",required = true,dataType = "String",paramType = "path",example = "blues")
8 })
9 @ApiResponses(value = {
10 @ApiResponse(code = 200, message = "接口返回成功状态"),
11 @ApiResponse(code = 500, message = "接口返回未知错误,请联系开发人员调试")
12 })
13 @ApiOperation(value = "Hello 测试接口", notes = "访问此接口,返回hello语句,测试接口")
14 @PostMapping("hello/{name}")
15 public Results<UserVO> hello(@RequestBody UserVO userVO){
16 Results<UserVO> results = new Results<>(200,"SUCCESS", userVO);
17 return results;
18 }
19 }
五、访问URL
http://localhost:7788/doc.html
六、兼容swagger-ui访问
http://localhost:7788/swagger-ui.html
七、测试
填入参数
对象请求访问
八、API文档复制
复制后可生成markdow文档,使用showdoc,即可翻译成文档,下载html、PDF、word等格式
源码地址:https://github.com/liushaoye/knife4j.git 欢迎点赞,分享,推荐
knife4j只用此插件的最简洁开发方式的更多相关文章
- 【eclipse插件开发实战】Eclipse插件开发4——插件JDE、PDE开发方式及plugin.xml配置文件结构
Eclipse插件开发4--插件JDE.PDE开发方式及plugin.xml配置文件结构 开发方式分为:java开发环境JDE开发插件的方式和插件开发环境PDE开发插件方式. 插件通过添加到预定义的扩 ...
- 2022IDEA配置启动lilishop的swagger展示
目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...
- Xcode插件优缺点对比(推荐20款插件)
本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...
- 图片延迟加载jquery插件imgLazyLoading
实现了图片延迟加载功能,插件代码非常简洁,且每个功能都把注释写得非常详细,适合网友们学习,好好利用哦 引入图片延迟加载Jquery插件文件后,页面使用代码如下: <script type=&qu ...
- 12个强大的Chrome插件
Chrome功能强大,也得益于其拥有丰富的扩展资源库.Chrome Web Store里有各种各样的插件,可以满足你使用Chrome时的各种要求.和Firefox一样,Chrome的扩展非常容易安装, ...
- 【转】Xcode 插件优缺点对比(推荐 20 款插件)
[转自]http://www.cnblogs.com/dsxniubility/p/5099191.html 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...
- xcode 必用插件二
本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...
- 精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
随机推荐
- P1015 [NOIP1999 普及组] 回文数
点击查看题目 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 ...
- SpringBoot自动配置的魔法
Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于J ...
- 《PHP程序员面试笔试宝典》——签约和违约需要注意哪些事情?
本文摘自<PHP程序员面试笔试宝典>. PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 经过了紧张激烈的笔试面试后,最后过五关斩六将,终于得到了用人单 ...
- 《PHP程序员面试笔试宝典》——如何应对面试官的“激将法”语言?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> "激将法"是面试官用以淘汰求职者的一种惯用方法,它是指面试官采用怀疑.尖锐或咄咄逼人的交流方式来对求 ...
- 手把手教你把 Git 子模块更新到主项目
本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把 Git 子模块更新到主项目中去. 首先,把fork的skywalking项目克隆到本地 ...
- python中类的调用
1 class Computer: # 创建类,类名首字母大写 2 screen = True # 类的属性 3 4 def start(self): # 创建实例方法,不要漏了 self 5 pri ...
- python-利用pymysql获取数据简单使用总结
python-利用pymysql获取数据库中的数据 1.前言 pymysql是一个第三方的模块,使用前需要安装 2.安装 pip install pymysql 3.基本使用 import pymys ...
- Excel真的是三维地图可视化制作最好的选择吗?
随着数据在当下互联网快速发展下变的维度更广,数量更大.结构越来越复杂,人们想要更加清晰,快速的认知和理解一份数据,传统的二维平面图表已经不能满足需求,三维可视化技术越结合多媒体技术.网络技术以及三维镜 ...
- 在服务器的docker里 装anacond3深度学习环境的全流程超基础
背景: 实验室给我分配了一个服务器 已经装好了docker 和nvidi docker . 现在我的目标是创建我自己的docker 然后在我自己的docker里装上anaconda环境. 我以前从 ...
- 2019CCPC Final K. Russian Dolls on the Christmas Tree
题目大意 一棵 \(n(1\leq n\leq 2\times 10^5)\) 个节点以 \(1\) 为根的树,分别求以 \(1\sim n\) 为根的子树中有多少个节点编号连续的段. \(T(1\l ...