springboot整合swagger2


首先還是引用相關jar包。


io.springfox
springfox-swagger2
2.6.1

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

>構建swagger2配置bean
    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.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    
    @EnableSwagger2
    @Configuration
    public class SwaggerTwo {                
        @Bean
        public Docket buildDocket(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(buildApiInf())    //.apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.tzy.test.controller"))//要注釋的接口名
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo buildApiInf(){
            return new ApiInfoBuilder()
                    .title("大標題")
                    .description("詳情")
                    .termsOfServiceUrl("http://www.cnblogs.com/ttzzyy/網址鏈接")
                    .contact(new Contact("Heaton_TAO", "http://www.cnblogs.com/ttzzyy/", "70416450@qq.com"))
                    .version("1.0")
                    .build();
    
        }
    }

>訪問http://localhost/swagger-ui.html 注意自己的端口 ![](https://images2018.cnblogs.com/blog/1235870/201805/1235870-20180517141619986-2116072325.png)

這里會把相應包下的所有controller按類進行顯示。 想顯示在這里就需要在類上加注解
我們看下其中一個類UserController.java,(請忽略業務邏輯,只看注解)

    @Api(value="用戶controller",description="用戶操作",tags={"用戶操作接口"})
    @RestController
    public class UserController {
    
        @Resource
        private UserService userService;
    
        @ApiOperation("獲取用戶信息")
        @GetMapping("/getUserInfo")
        public User getUserInfo(@ApiParam(name="id",value="用戶id",required=true) Long id,@ApiParam(name="username",value="用戶名") String username) {
            User user = userService.getUserInfo();
            return user;
        }
            
        @ApiOperation("更改用戶信息")
        @PostMapping("/updateUserInfo")
        public int updateUserInfo(@RequestBody @ApiParam(name="用戶對象",value="傳入json格式",required=true) User user){
            int num = userService.updateUserInfo(user);
            return num;
        }
    
        @ApiOperation("添加用戶信息")
        @PostMapping("/saveUser")
        public String saveUser(@RequestBody @ApiParam(name="user",value="json fromat",required=true) User user) {
            userService.saveUser(user);
            return "success";
        }
    }

>這里說明下,在使用對象作為參數時,可以在對象上添加相應的注解,用戶頁面顯示。
    @ApiModel(description="用戶對象user")
    @DATA
    public class User {
        @ApiModelProperty(value="用戶名",name="username")
        private String username;
        @ApiModelProperty(value="狀態",name="state",required=true)
        private Integer state;
        private String password;
        private String nickName;
        private Integer isDeleted;
    }        

![](https://images2018.cnblogs.com/blog/1235870/201805/1235870-20180517142240182-2021198852.png) ![](https://images2018.cnblogs.com/blog/1235870/201805/1235870-20180517142302239-230517701.png) >看上圖紅框的部分,其中一個是json格式的點擊就可以獲取參數格式。 >第二張中可以看到字段相應的注釋和是否必填。 >如果在字段上添加注釋@ApiModelProperty(required=true)就是必填(默認是false),相應的頁面optional標識也會消失,標識這個字段必填。 >點擊下面的try it out按鈕就可以進行調試。 >在使用單個參數時,如上面代碼中的getUserInfo()方法,對應的效果圖如下: ![](https://images2018.cnblogs.com/blog/1235870/201805/1235870-20180517142422968-1233074997.png) >這里如果是添加required=true,@ApiParam(required=true)則會在頁面上顯示required的標識。同樣默認為false。 >其他的使用方式可以自己動手試試。
[參考鏈接:](https://blog.csdn.net/u014231523/article/details/76522486)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM