一、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只用此插件的最简洁开发方式的更多相关文章

  1. 【eclipse插件开发实战】Eclipse插件开发4——插件JDE、PDE开发方式及plugin.xml配置文件结构

    Eclipse插件开发4--插件JDE.PDE开发方式及plugin.xml配置文件结构 开发方式分为:java开发环境JDE开发插件的方式和插件开发环境PDE开发插件方式. 插件通过添加到预定义的扩 ...

  2. 2022IDEA配置启动lilishop的swagger展示

    目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...

  3. Xcode插件优缺点对比(推荐20款插件)

    本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  4. 图片延迟加载jquery插件imgLazyLoading

    实现了图片延迟加载功能,插件代码非常简洁,且每个功能都把注释写得非常详细,适合网友们学习,好好利用哦 引入图片延迟加载Jquery插件文件后,页面使用代码如下: <script type=&qu ...

  5. 12个强大的Chrome插件

    Chrome功能强大,也得益于其拥有丰富的扩展资源库.Chrome Web Store里有各种各样的插件,可以满足你使用Chrome时的各种要求.和Firefox一样,Chrome的扩展非常容易安装, ...

  6. 【转】Xcode 插件优缺点对比(推荐 20 款插件)

    [转自]http://www.cnblogs.com/dsxniubility/p/5099191.html 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  7. xcode 必用插件二

    本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  8. 精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

  9. 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

随机推荐

  1. P1015 [NOIP1999 普及组] 回文数

    点击查看题目 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 ...

  2. SpringBoot自动配置的魔法

    Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于J ...

  3. 《PHP程序员面试笔试宝典》——签约和违约需要注意哪些事情?

    本文摘自<PHP程序员面试笔试宝典>. PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 经过了紧张激烈的笔试面试后,最后过五关斩六将,终于得到了用人单 ...

  4. 《PHP程序员面试笔试宝典》——如何应对面试官的“激将法”语言?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> "激将法"是面试官用以淘汰求职者的一种惯用方法,它是指面试官采用怀疑.尖锐或咄咄逼人的交流方式来对求 ...

  5. 手把手教你把 Git 子模块更新到主项目

    本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把 Git 子模块更新到主项目中去. 首先,把fork的skywalking项目克隆到本地 ...

  6. python中类的调用

    1 class Computer: # 创建类,类名首字母大写 2 screen = True # 类的属性 3 4 def start(self): # 创建实例方法,不要漏了 self 5 pri ...

  7. python-利用pymysql获取数据简单使用总结

    python-利用pymysql获取数据库中的数据 1.前言 pymysql是一个第三方的模块,使用前需要安装 2.安装 pip install pymysql 3.基本使用 import pymys ...

  8. Excel真的是三维地图可视化制作最好的选择吗?

    随着数据在当下互联网快速发展下变的维度更广,数量更大.结构越来越复杂,人们想要更加清晰,快速的认知和理解一份数据,传统的二维平面图表已经不能满足需求,三维可视化技术越结合多媒体技术.网络技术以及三维镜 ...

  9. 在服务器的docker里 装anacond3深度学习环境的全流程超基础

    ​ 背景: 实验室给我分配了一个服务器 已经装好了docker 和nvidi docker . 现在我的目标是创建我自己的docker 然后在我自己的docker里装上anaconda环境. 我以前从 ...

  10. 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 ...