1. 程式人生 > 其它 >SpringBoot 專案配置 Swagger 介面api 搭建 REST

SpringBoot 專案配置 Swagger 介面api 搭建 REST

一、簡述
開發前後端分離架構的專案,往往除錯後端Web介面需要用到POSTMAN工具。雖然POSTMAN工具的功能非常強大,但是請求引數很多的情況下,我們手寫這些引數和資料還是非常麻煩的。因此我們需要一個除錯後端Web介面更加簡便的方法。恰好Swagger提供了RESTAPI呼叫方式,我們不需要藉助任何工具的情況下,訪問Swagger頁面,就可以對Web介面進行呼叫和除錯,這種除錯方式的效率要遠超POSTMAN軟體。

二、pom.xml中匯入Swagger的依賴

<dependency>

<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>

</dependency>
<dependency>

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

</dependency>

三、建立Swagger的配置類
@Configuration
@EnableSwagger2
public class SwaggerConfig {

//java專案 www fhadmin org
@Bean
public Docket createRestApi() {
    Docket docket = new Docket(DocumentationType.SWAGGER_2);
    // ApiInfoBuilder 用於在Swagger介面上新增各種資訊
    ApiInfoBuilder builder = new ApiInfoBuilder();
    builder.title("XXXX系統");
    ApiInfo apiInfo = builder.build();
    docket.apiInfo(apiInfo);
    // ApiSelectorBuilder 用來設定哪些類中的方法會生成到遊戲REST API中
    ApiSelectorBuilder selectorBuilder = docket.select();
    selectorBuilder.paths(PathSelectors.any()); //所有包下的類
    //使用@ApiOperation的方法會被提取到REST API中
    selectorBuilder.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class));
    docket = selectorBuilder.build();
    /*
     * 下面的語句是開啟對JWT的支援,當用戶用Swagger呼叫受JWT認證保護的方法,
     * 必須要先提交引數(例如令牌)
     */
    //儲存使用者必須提交的引數
    List<ApiKey> apikey = new ArrayList();
    //規定使用者需要輸入什麼引數
    apikey.add(new ApiKey("token", "token", "header"));
    docket.securitySchemes(apikey);
    //如果使用者JWT認證通過,則在Swagger中全域性有效
    AuthorizationScope scope = newwww.sangpi.com AuthorizationScope("global", "accessEverything");
    AuthorizationScope[] scopeArray = {scope};
    //儲存令牌和作用域
    SecurityReference reference = new SecurityReference("token", scopeArray);
    List refList = new ArrayList();
    refList.add(reference);
    SecurityContext context = SecurityContext.builder().securityReferences(refList).build();
    List cxtList = new ArrayList();
    cxtList.add(context);
    docket.securityContexts(cxtList);
    return docket;

四、測試Web介面
package com.gaoyang.emos.wx.controller;
import com.gaoyang.emos.wx.common.util.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//java

遊戲專案 www fhadmin org
@RestController
@RequestMapping("/test")
@Api("測試Web介面")
public class TestController {

@RequestMapping("testSwagger")
@ApiOperation("測試Swagger配置")
public ResponseResult testSwagger(){
    return ResponseResult.error(200,"OK");
}

}

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=
五、訪問swagger-ui.html頁面
注意:還需要新增在啟動類中新增 @EnableSwagger2 註解,,否則會出線,頁面載入失敗情況!

啟動專案之後,訪問: localhost:8080/emos-wx-api/swagger-ui.html