springboot + swagger2 學習筆記

引入步驟html

1.添加依賴java

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${dev.lib.swagger2}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${dev.lib.swagger2}</version>
</dependency>

2.配置swagger2spring

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    /**
     * 能夠定義多個組,好比本類中定義把test和demo區分開了 (訪問頁面就能夠看到效果了)
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gt.controller"))
                .paths(PathSelectors.any()).build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfo("SWAGGER接口文檔", // 大標題
                "沒什麼好寫的", // 小標題
                "2.0", // 版本
                "NO terms of service", "Czt@Chenzetan", // 做者
                "Czt", // 連接顯示文字
                ""// 網站連接
        );
    }
}

3.api代碼api

 @ApiOperation(value = "獲取商家用戶店鋪分頁列表",notes = "")
    @GetMapping
    public GTJsonResult getMainsList(HttpServletRequest request, Page page ) {
        Page<Main> mainsList = mainService.getMainsList(SessionUtil.getBusUser(request).getId(), page);
        if (mainsList.getRecords() == null || mainsList.getRecords().size() == 0) {
            return GTJsonResult.instanceErrorMsg("沒有數據");
        }
        return GTJsonResult.instanceSuccessMsg(mainsList);
    }

4.訪問 host//swagger-ui.html查看app

 

 

遇到的問題:網站

  1.若是方法請求參數中爲實體類,那麼不須要添加註解,便可實現這種效果,實體的參數會以paramter方式請求,例如3中的代碼,page爲object類型,請求只須要current=3便可注入到page參數中ui

2.上面這圖爲swagger較高版本,我用的是2.6.1,原來用2.2.2是不能實現這種效果。spa

 

3.@requestbody註解不能用於Get方式請求中code

 

4.@ApiImplicitParam和@ApiParam 注意區分好,前面一個能指定參數的各個方面,包括paramType類型,例如在藏在路徑中的getObject/{id} 這種的,apiparam註解就不能作到,暫時還不懂真正的區別是什麼?有知道的請告知下!謝謝htm

相關文章
相關標籤/搜索