spring boot使用Swagger2

  • 1. 在pom.xml中加入Swagger2的依赖
 1 <!--加入Swagger2的依赖-->
 2 <dependency>
 3     <groupId>io.springfox</groupId>
 4     <artifactId>springfox-swagger2</artifactId>
 5     <version>2.2.2</version>
 6 </dependency>
 7 <dependency>
 8     <groupId>io.springfox</groupId>
 9     <artifactId>springfox-swagger-ui</artifactId>
10     <version>2.2.2</version>
11 </dependency>                    
  • 2. 在Application.java同级创建Swagger2的配置类Swagger2
 1 import org.springframework.context.annotation.Bean;
 2 import org.springframework.context.annotation.Configuration;
 3 import springfox.documentation.builders.ApiInfoBuilder;
 4 import springfox.documentation.builders.PathSelectors;
 5 import springfox.documentation.builders.RequestHandlerSelectors;
 6 import springfox.documentation.service.ApiInfo;
 7 import springfox.documentation.spi.DocumentationType;
 8 import springfox.documentation.spring.web.plugins.Docket;
 9 import springfox.documentation.swagger2.annotations.EnableSwagger2;
10
11
12 @Configuration //让Spring来加载该类配置
13 @EnableSwagger2 //启用Swagger2
14 public class Swagger2 {
15
16     @Bean
17     public Docket createRestApi() {
18         return new Docket(DocumentationType.SWAGGER_2)
19                 .apiInfo(apiInfo())//用来创建该Api的基本信息(这些基本信息会展现在文档页面中)
20                 .select()
21                 //用来控制哪些接口暴露给Swagger来展现,
22                 //本例采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容
23                 //(除了被@ApiIgnore指定的请求)
24                 .apis(RequestHandlerSelectors.basePackage("com.example.demo1.web"))
25                 .paths(PathSelectors.any())
26                 .build();
27     }
28
29     private ApiInfo apiInfo() {
30         return new ApiInfoBuilder()
31                 .title("Spring Boot中使用Swagger2构建RESTful APIs")
32                 .description("更多Spring Boot相关文章请关注:https://www.cnblogs.com/yangjiming/category/1240129.html")
33                 .termsOfServiceUrl("http://www.cnblogs.com/yangjiming/")
34                 .contact("Mr.yang")
35                 .version("1.0")
36                 .build();
37     }
38 }
  • 3.  在代码中添加文档内容,通过@ApiOperation注解来给API增加说明、通过@ApiImplicitParams、@ApiImplicitParam注解来给参数增加说明
 1 import com.example.demo1.domain.User;
 2 import io.swagger.annotations.ApiImplicitParam;
 3 import io.swagger.annotations.ApiImplicitParams;
 4 import io.swagger.annotations.ApiOperation;
 5 import org.springframework.web.bind.annotation.*;
 6
 7 import java.util.*;
 8
 9 @RestController
10 @RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下
11 public class UserController {
12
13     static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
14
15     @ApiOperation(value="获取用户列表", notes="")
16     @RequestMapping(value={""}, method=RequestMethod.GET)
17     public List<User> getUserList() {
18         List<User> r = new ArrayList<User>(users.values());
19         return r;
20     }
21
22     @ApiOperation(value="创建用户", notes="根据User对象创建用户")
23     @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
24     @RequestMapping(value="", method=RequestMethod.POST)
25     public String postUser(@RequestBody User user) {
26         users.put(user.getId(), user);
27         return "success";
28     }
29
30     @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
31     @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType="path")
32     @RequestMapping(value="/{id}", method=RequestMethod.GET)
33     public User getUser(@PathVariable Long id) {
34         return users.get(id);
35     }
36
37     @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")
38     @ApiImplicitParams({
39             @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType="path"),
40             @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
41     })
42     @RequestMapping(value="/{id}", method=RequestMethod.PUT)
43     public String putUser(@PathVariable Long id, @RequestBody User user) {
44         User u = users.get(id);
45         u.setName(user.getName());
46         u.setAge(user.getAge());
47         users.put(id, u);
48         return "success";
49     }
50
51     @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象")
52     @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long" , paramType="path")
53     @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
54     public String deleteUser(@PathVariable Long id) {
55         users.remove(id);
56         return "success";
57     }
58 }

 1 public class User {
 2
 3     private Long id;
 4     private String name;
 5     private Integer age;
 6
 7
 8     public Long getId() {
 9         return id;
10     }
11
12     public String getName() {
13         return name;
14     }
15
16     public Integer getAge() {
17         return age;
18     }
19
20     public void setId(Long id) {
21         this.id = id;
22     }
23
24     public void setName(String name) {
25         this.name = name;
26     }
27
28     public void setAge(Integer age) {
29         this.age = age;
30     }
31 }

原文地址:https://www.cnblogs.com/yangjiming/p/9213478.html

时间: 2024-10-07 16:55:57

spring boot使用Swagger2的相关文章

Spring Boot之Swagger2集成

一.Swagger2简单介绍 Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档.它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明.另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 二.Spring Boot集成Swagger2步骤 1)引入Swagger2的Maven坐标 <!--swa

Spring boot集成Swagger2,解决页面不显示的问题

maven <!-- swagger --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dependency><dependency> <groupId>io.springfox</gr

spring boot集成swagger2

做java Web的后端开发已经两年多了,一般都是开发完了接口,都把接口更新到wiki文档上,然后通知前端去文档上去查阅接口的详细描述, 当时经常接口会有变动,加参数或返回值夹字段,所以维护语线上一致的文档是一件非常麻烦的事情,前一段时间同事聊天说他们公司用的swagger2,这个不需要写文档,它是自动生成文档,只要会使用它提供的几个的注解就行,于是上网找了下资料,发现它于spring boot集成也非常方便.不废话直接看了代码. 首先,在maven项目的pom.xml加上他需要的依赖. <de

Spring Boot 集成swagger2

1.swagger简介 Swagger是一款RESTful接口的文档在线自动生成.功能测试功能框架.一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现. 当我们在后台的接口修改了后,swagger可以实现自动的更新,而不需要人为的维护这个接口进行测试. /'swæg?/ v. 大摇大摆地走,趾高气扬地行走或行事:吓唬,虚张声势吓人:吹牛 2:基于前面的知识点 本知识点在springboot使用基于Mybatis注解方式实现

Spring Boot启用Swagger2

Swagger2是一个开源项目,用于为RESTful Web服务生成REST API文档. 它提供了一个用户界面,可通过Web浏览器访问RESTful Web服务. 要在Spring Boot应用程序中启用Swagger2,需要在构建配置文件中添加以下依赖项. <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <v

Spring Boot 整合 swagger2 自动生成 RESTFul API 文档

1)首先编辑pom.xml添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId>

【原】Spring Boot 配置swagger2没有文档解决方案

@Bean public Docket customImplementation(){ return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.xx.controller")) .build() .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.cla

Spring Boot 配置swagger2没有文档解决方案

@Bean public Docket customImplementation(){ return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.xx.controller")) .build() .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.cla

spring boot 1.5.4 集成Swagger2构建Restful API(十八)

上一篇博客地址:springboot 1.5.4 整合rabbitMQ(十七) 1      Spring Boot集成Swagger2构建RESTful API文档 1.1  Swagger2简介 Swagger2官网:http://swagger.io/ 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会