首頁 > 軟體

Spring boot整合Springfox生成restful的線上api檔案

2022-03-08 13:03:41

Springfox是什麼,有什麼用?

Springfox基於Swagger,能更方便的整合到spring boot 中,Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。Swagger的目標是對REST API定義一個標準的和語言無關的介面,可讓人和計算機無需存取原始碼、檔案或網路流量監測就可以發現和理解服務的能力。當通過Swagger進行正確定義,使用者可以理解遠端服務並使用最少實現邏輯與遠端服務進行互動。與為底層程式設計所實現的介面類似,Swagger消除了呼叫服務時可能會有的猜測。

Springfox官方檔案:http://springfox.github.io/springfox/docs/snapshot/

Springfox的依賴

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

Springfox的設定

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket demoApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("demo")
                .genericModelSubstitutes(DeferredResult.class)
                .useDefaultResponseMessages(false)
                .forCodeGeneration(false)
                //.pathMapping("/") //根路徑
                .select()
                .paths(PathSelectors.regex("/user/.*"))//篩選展示的介面,使用PathSelectors.any(),展示所有介面
                .build()
                .apiInfo(demoApiInfo())
                ;
    }
    //api資訊
    private ApiInfo demoApiInfo() {
        ApiInfo apiInfo = new ApiInfo("自己平臺的api",//大標題
                "swagger搭建api平臺",//小標題
                "1.0",//版本
                "NO terms of service",
                "632104866@qq.com",//作者
                "這是我的技術部落格站點",//連結顯示文字
                "http://www.kailing.pub"//網站連結
        );
        return apiInfo;
    }
}

測試的Controll

@RestController
@RequestMapping("/user")
public class SwaggerDemoController {
    @RequestMapping(value = "/demo2",method = RequestMethod.POST)
    @ApiOperation(value="測試介面1", notes="測試介面詳細描述")
    @ResponseBody
    ModelMap getDemo(@RequestBody User user) {
        ModelMap map = new ModelMap();
        map.addAttribute("userId", 111);
        map.addAttribute("userName", "kl部落格");
        return map;
    }
    @ResponseBody
    @RequestMapping(value = "/demo3", method = RequestMethod.POST)
    @ApiOperation(value="測試介面2", notes="測試介面詳細描述",code = 200,produces = "application/json")
    public ModelMap getDemoa(@RequestParam("name") String demoName, @RequestParam String content) {
        ModelMap map = new ModelMap();
        map.addAttribute("result",demoName + "AAA");
        return map;
    }
    @ResponseBody
    @ApiIgnore //使用這個註解忽略這個介面
    @RequestMapping(value = "/demo4", method = RequestMethod.POST)
    public ModelMap getDemob(@RequestParam String content) {
        ModelMap map = new ModelMap();
        map.addAttribute("result",new java.util.Date());
        return map;
    }
}

 在瀏覽器輸入http://localhost:8080/swagger-ui.html,可檢視是否整合成功

至此我們的額api線上檔案整合完成了,下面是效果圖

以上就是Spring boot整合Springfox生成restful的線上api檔案的詳細內容,更多關於Spring boot整合Springfox生成restful線上api的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com