Spring Cloud 接入 Swagger 2.9 UI 2.2.2

Spring Cloud 集成Swagger 2.9 ui 2.2.2

  • 新建項目
  • pom加依賴
<code> <dependency>
\t<groupid>io.springfox/<groupid>
\t\t<artifactid>springfox-swagger2/<artifactid>
\t\t<version>2.9.2/<version>
/<dependency>

<dependency>
<groupid>io.springfox/<groupid>
<artifactid>springfox-swagger-ui/<artifactid>
<version>2.2.2/<version>
/<dependency>/<code>
  • ui版本也可以換成2.8.0,我在官方maven庫查找的時候,2.9.2也有,但是下載不下來。Maven庫地下:https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui
  • 待導入包結束,新建SwaggerConfig.java
  • <code>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;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    @Bean
    public Docket docket() {
    return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo())
    .select()
    // 需要展示文檔的包路徑
    .apis(RequestHandlerSelectors.basePackage("com.example.security"))
    .paths(PathSelectors.any())
    .build();

    }


    //構建api文檔的詳細信息函數
    private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
    //頁面標題
    .title("Test測試Swagger")
    //創建人
    .contact(new Contact("xxx", "http://www.xxx.com", "[email protected]"))
    //版本號
    .version("1.0")
    //描述
    .description("API 描述")
    .build();
    }
    }/<code>
    • 新建TestController.java
    <code>@Api(value = "測試swagger2文檔")
    @RestController
    public class TestController {

    @ApiOperation(value = "專用於測試使用", notes = "備註")
    @ApiImplicitParam(name = "name", value = "名稱", paramType = "path", required = true, dataType = "String", example = "你爸爸")
    @ApiResponses({
    @ApiResponse(code = 500, message = "內部程序錯誤"),
    @ApiResponse(code = 400, message = "請求無效"),
    @ApiResponse(code = 200, message = "請求成功"),
    @ApiResponse(code = 404, message = "你懂得")
    })
    @GetMapping("/test")
    public String test(String name) {
    return "我是測試Swagger2" + name;
    }

    @ApiOperation(value = "測試請求", notes = "備註")
    @ApiImplicitParam(name = "name", value = "參數1", paramType = "path", required = true, dataType = "String", example = "你媽媽")
    @ApiResponses({
    @ApiResponse(code = 500, message = "內部程序錯誤"),
    @ApiResponse(code = 400, message = "請求無效"),

    @ApiResponse(code = 200, message = "請求成功"),
    @ApiResponse(code = 404, message = "你懂得")
    })
    @GetMapping("/test1")
    public String test1(@RequestParam String name) {
    return "我是測試Swagger2" + name;
    }

    }/<code>
    • 啟動程序,根據啟動的端口訪問
    <code>http://localhost:5003/swagger-ui.html  
    點擊頁面的TestController文字/<code>
    • 備註
    <code>參數介紹
    @EnableSwagger2 @Configuration
    配置類需要添加的註解,聲明為Swagger

    @ApiOperation
    指定接口方法的說明,如果方法不加此註解,說明默認為方法名稱

    @ApiImplicitParams @ApiImplicitParam
    接口詳細描述的參數信息
    其中 ApiImplicitParam 為具體的參數,裡面的配置 paramType 需要注意:
    paramType代表參數放在哪個地方
    header-->請求參數的獲取:@RequestHeader
    query-->請求參數的獲取:@RequestParam
    path(用於restful接口)-->請求參數的獲取:@PathVariable

    body(不常用)
    form(不常用)

    @ApiResponses
    接口返回信息描述/<code>


    分享到:


    相關文章: