Spring Boot中使用Swagger2构建RESTful APIs

    <dependency>  
        <groupId>io.springfox</groupId>  
        <artifactId>springfox-swagger2</artifactId>  
        <version>2.2.2</version>  
    </dependency>  
    <dependency>  
        <groupId>io.springfox</groupId>  
        <artifactId>springfox-swagger-ui</artifactId>  
        <version>2.2.2</version>  
    </dependency>  

然后我们需要在Application同级目录下添加Swagger2的配置类。

package com.seawater;  
  
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.service.ApiInfo;  
import springfox.documentation.spi.DocumentationType;  
import springfox.documentation.spring.web.plugins.Docket;  
import springfox.documentation.swagger2.annotations.EnableSwagger2;  
  

@Configuration  
@EnableSwagger2  
public class Swagger2Configure {  
  
    @Bean  
    public Docket createRestApi() {  
        return new Docket(DocumentationType.SWAGGER_2)  
                .apiInfo(apiInfo())  
                .select()  
                .apis(RequestHandlerSelectors.basePackage("com.seawater.controller"))  
                .paths(PathSelectors.any())  
                .build();  
    }  
  
    private ApiInfo apiInfo() {  
        return new ApiInfoBuilder()  
                .title("Spring Boot中使用Swagger2构建RESTful APIs")  
                .description("Spring Boot Swagger2")  
                .termsOfServiceUrl("http://blog.csdn.net/zhouseawater")  
                .contact("seawater")  
                .version("1.0")  
                .build();  
    }  
  
} 
extends WebMvcConfigurerAdapter

@Bean
public Docket createRestApi() {
   return new Docket(DocumentationType.SWAGGER_2)
         .apiInfo(apiInfo())
         .select()
         .apis(RequestHandlerSelectors.basePackage("com.cloudbest.sso.controller"))
         .paths(PathSelectors.any())
         .build();
}

private ApiInfo apiInfo() {
   return new ApiInfoBuilder()
         .title("CloudBest用户中心api文档")
         .description("")
         .termsOfServiceUrl("")
         .version("1.0")
         .build();
}

   @Override  
   public void addResourceHandlers(ResourceHandlerRegistry registry) {  
       registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");  
       registry.addResourceHandler("/webjars*").addResourceLocations("classpath:/META-INF/resources/webjars/");  
   }  

@Configuration注解告诉Spring加载这个类的配置。
@EnableSwagger2 启用Swagger2。
apiInfo()方法添加API的基本信息.

package com.seawater.controller;  
   
 import com.seawater.bean.User;  
 import io.swagger.annotations.Api;  
 import io.swagger.annotations.ApiImplicitParam;  
 import io.swagger.annotations.ApiImplicitParams;  
 import io.swagger.annotations.ApiOperation;  
 import org.springframework.web.bind.annotation.*;  
   
 import java.util.*;  
   
 /** 
  * Created by linyuon 2016/12/30. 
  */  
 @RestController  
 @RequestMapping(value = "/user")  
 @Api(description = "用户")  
 public class UserController {  
   
     static Map<String,User> userMap = Collections.synchronizedMap(new HashMap<String, User>());  
   
     @ApiOperation(value = "获取用户列表")  
     @RequestMapping(value = "/getUserList" , method = RequestMethod.GET)  
     public List<User> getUserList(){  
         List<User> userList = new ArrayList<User>(userMap.values());  
         return userList;  
     }  
   
   
     @ApiOperation(value="创建用户", notes="根据User对象创建用户")  
     @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")  
     @RequestMapping(value="/addUser", method=RequestMethod.POST)  
     public String addUser(@RequestBody User user) {  
         userMap.put(user.getId(), user);  
         return "success";  
     }  
   
     @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")  
     @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String")  
     @RequestMapping(value="/getById/{id}", method=RequestMethod.GET)  
     public User getById(@PathVariable String id) {  
         return userMap.get(id);  
     }  
   
   
     @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")  
     @ApiImplicitParams({  
             @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String"),  
             @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")  
     })  
     @RequestMapping(value="/updateById/{id}", method=RequestMethod.PUT)  
     public String updateById(@PathVariable String id, @RequestBody User user) {  
         User u = userMap.get(id);  
         u.setName(user.getName());  
         u.setAge(user.getAge());  
         userMap.put(id, u);  
         return "success";  
     }  
   
   
     @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象")  
     @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String")  
     @RequestMapping(value="/deleteById/{id}", method=RequestMethod.DELETE)  
     public String deleteById(@PathVariable String id) {  
         userMap.remove(id);  
         return "success";  
    }  
   
 }  

访问http://localhost:8081/swagger-ui.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值