springboot 集成 Swagger ui

来源:互联网 发布:国外的知乎 编辑:程序博客网 时间:2024/06/05 00:53

一、springboot创建&引入Swagger依赖

pom文件中加入下面两个依赖2.7.0最新版本
<dependency>           <groupId>io.springfox</groupId>           <artifactId>springfox-swagger2</artifactId>           <version>2.7.0</version>        </dependency>        <dependency>           <groupId>io.springfox</groupId>           <artifactId>springfox-swagger-ui</artifactId>           <version>2.7.0</version>        </dependency>

二、创建swagger 配置文件

注意:basepackage指定是为了去除swagger ui中默认显示的用于swagger测试的Basic Error Controller



package test.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket; @Configurationpublic class swaggerConfig { @Beanpublic Docket config() {    return new Docket(DocumentationType.SWAGGER_2)            .select()            .apis(RequestHandlerSelectors.basePackage("test.controller"))            .build();    //basePackage是去掉默认带的测试的Basic Error Controller}}

三、创建controller
package test.entity;public class User {private String userName;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}private int age;private String password;}

User我做了个简单的entity实体类,只有简单的getter和setter方法。



package test.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import io.swagger.annotations.Api;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiImplicitParams;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiResponse;import io.swagger.annotations.ApiResponses;import test.entity.User;@RestController@RequestMapping("/user")@Api("userController相关api")public class UserController {    @Autowired    @ApiOperation("获取用户信息")    @ApiImplicitParams({        @ApiImplicitParam(paramType="header",name="username",dataType="String",required=true,value="用户的姓名",defaultValue="thuempire"),        @ApiImplicitParam(paramType="query",name="password",dataType="String",required=true,value="用户的密码",defaultValue="123456")    })    @ApiResponses({        @ApiResponse(code=400,message="请求参数没填好"),        @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")    })    @RequestMapping(value="/getUser",method=RequestMethod.GET)    public User getUser(/*@RequestHeader("username") String username, @RequestParam("password") String password*/) {    User us= new User();    us.setUserName("thuempire");    us.setPassword("123456");    us.setAge(18);        return us;    }        }



四、运行查看

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


五、其他swagger注解

最常用的5个注解


@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段


其它若干


@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API 


@ApiClass
@ApiError
@ApiErrors


@ApiParamImplicit
@ApiParamsImplicit
原创粉丝点击