添加 Swagger 依赖

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>

创建 Swagger 配置类

package com.app.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket; @Configuration
@EnableOpenApi
public class SwaggerConfig { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.app.controller"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("RESTful APIs")
.description("RESTful APIs")
.termsOfServiceUrl("http://localhost:8080/")
.contact(new Contact("jack", "www.baidu.com", "jack@qq.com"))
.version("1.0")
.build();
}
}

编写接口文档

package com.app.controller;

import java.util.logging.Logger;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; @Api(tags = "文章接口")
@RestController
@RequestMapping("/chapter")
public class ArticleController { Logger logger = Logger.getLogger("com.app.controller.ChapterController"); @ApiOperation(value = "获取指定id的文章", notes = "根据URL的id获取指定文章的信息")
@ApiImplicitParam(name = "id", value = "文章id", required = true, dataType = "Long", dataTypeClass = Long.class)
@GetMapping("/{id}")
public String getOne(@PathVariable Long id) {
logger.info(id + "");
return id + "";
} @ApiOperation(value = "删除指定id的文章", notes = "根据URL的id删除指定文章的信息")
@ApiImplicitParam(name = "id", value = "文章id", required = true, dataType = "Long", dataTypeClass = Long.class)
@DeleteMapping("/{id}")
public String deleteOne(@PathVariable Long id) {
logger.info(id + "");
return id + "";
}
}

注解说明:

  • @Api:描述类/接口的主要用途。
  • @ApiOperation:描述方法用途,给 API 增加说明。
  • @ApiImplicitParam:描述方法的参数,给参数增加说明。
  • @ApiImplicitParams:描述方法的参数(Multi-Params),给参数增加说明。
  • @ApiIgnore:忽略某类/方法/参数的文档。

测试访问

通过访问以下链接进入 swagger 页面。

http://localhost:8080/swagger-ui/index.html

最新文章

  1. 怎样给div增加resize事件
  2. C# log4net输出发生错误的行号
  3. Android笔记——活动的生命周期
  4. 删除ECSHOP后台升级提示/下载最新补丁升级提示
  5. jquery表单提交和重置
  6. CSS3选择器:nth-child和:nth-of-type之间的差异
  7. Unity3D文件读写
  8. JavaScript高级程序开发3笔记
  9. SCADA软件整体架构
  10. HTML5如何播放本地文件
  11. 什么是IDOC,以及IDOC的步骤
  12. Spring Cloud学习笔记-003
  13. how to select checkbox on cli environment?
  14. VisualStudioCode创建的asp.net core项目部署到linux,使用nginx代理
  15. [转]Java工程师技术栈--成神之路
  16. python的学习笔记
  17. 9 个用于移动APP开发的顶级 JavaScript 框架【申明:来源于网络】
  18. String、StringBuffer与StringBuilder的区别-陈远波
  19. Netty权威指南之BIO(Block Input/Output,同步阻塞I/O通信)通信模型
  20. 【转】每天一个linux命令(38):cal 命令

热门文章

  1. 解决Revit导出FBX模型材质丢失的问题
  2. gdbOF阅读笔记
  3. MicroPython 之 PYBoard
  4. rotate matrix
  5. 【2】java之object类
  6. Google Webstore Config
  7. HashMap排序题
  8. SSM项目集成Redis
  9. SQL SERVER提示pre-login handshake failed错误的一种解决方法。
  10. Nacos服务管理