一、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. 如何在 Xamarin 中快速集成 Android 版认证服务 - 邮箱地址篇

    Xamarin 作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称 AGC)也在逐步的支持 Xamarin 的 SDK.认证服务也是 ...

  2. MySQL表单查询

    一.表单查询的语法 select 字段1.字段2....from 表名 where MySQL备份

  3. EasyX库简单中文手册

    EasyX库简单中文手册 作者: 时间: 2021/2/2 第一个例程 #include <graphics.h> // 图像相关库 #include <conio.h> // ...

  4. Dubbo SPI机制之三Adaptive自适应功能

    JDK标准中SPI机制的一个问题就是其一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源:扩展点加载失败,其他扩展点都用不了了.Dubbo是如何解决该问题动态的选 ...

  5. 自动同步bing壁纸

    在百度搜东西,经常出来一大坨广告:要么就是复制粘贴文章.完全没有创新,搜索越来越困难.偶尔用一下bing还挺好用. bing的壁纸是真心好看,每天不重样.决定写个脚本同步一下它的壁纸. 一.以我的Wi ...

  6. 攻防世界Web_shrine

    题目: 给的是源代码,整理一下如下: 看到jinjia flask,render_template_string猜测到这题应该是考查python模板注入. 代码分析可以得到以下信息: 1.路径在 /s ...

  7. NSSCTF-error

    打开网页出现一个输入框,尝试使用127.0.0.1发现只是回显我们输入的内容 尝试进行注入,输入数字1会回显没有提示......,order by进行判断列数,得到有三列 接着就是正常注入的思路,使用 ...

  8. WEB服务蜜罐部署实验

    实验目的 了解WEB蜜罐的基本原理,掌握Trap Server的使用. 实验原理 Trap Server是一款WEB服务器蜜罐软件,它可以模拟很多不同的服务器,例如Apache. HTTP Serve ...

  9. proto编译组件使用

    proto编译组件使用 前提:所有组件已经安装好,包括: protoc protoc-gen-go protoc-gen-grpc-gateway protoc-gen-swagger 怎么装再开一篇 ...

  10. 【C# 锁】SpinWait结构 -同步基元|同步原语

    锁提供了线程安全三要素中的 有序性.二.SpinWait是同步锁的核心,而Thread是SpinWait的核心. Spinwait结构 完成代码:SpinWait.cs (dot.net) SpinW ...