springBoot與swagger整合

Swagger是目前比較流行的文檔生成工具,其具有一下優(yōu)點(diǎn):
1.Swagger可以生成一個(gè)具有互動(dòng)性的api控制臺(tái),開發(fā)者可以使用該平臺(tái)來(lái)學(xué)習(xí)和理解api接口.
2.Swagger可以生成客戶端SDK代碼用戶各種不同平臺(tái)的實(shí)現(xiàn)
3.Swagger 文件可以在許多不同的平臺(tái)上從代碼注釋中自動(dòng)生成
下面是springBoot與Swagger整合實(shí)例,別的不多說(shuō)直接上代碼:
搭建項(xiàng)目的最終實(shí)例:


image.png

下面開始搭建(我們使用的maven進(jìn)行代碼管理):
一.引入依賴到pom.xml中


<!-- Swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>

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

二.生成Swagger配置類


package com.example.demo.swaggerdemo;

import com.google.common.base.Predicate;
import org.springframework.boot.autoconfigure.web.BasicErrorController;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**

  • 整合Swagger

  • Created by Administrator on 2018/4/12.
    */
    @Configuration
    @EnableSwagger2 //啟用Swagger
    public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
    Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() {
    @Override
    public boolean apply(RequestHandler input) {
    Class<?> declaringClass = input.declaringClass();
    if (declaringClass == BasicErrorController.class)// 排除沒有添加注解的類
    return false;
    if(declaringClass.isAnnotationPresent(RestController.class)) //添加@ApiOperation(value = "",notes = "")注解的類
    return true;
    if(input.isAnnotatedWith(ResponseBody.class)) // 添加@ApiOperation(value = "",notes = "")注解的方法
    return true;
    return false;
    }
    };
    return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo())
    .useDefaultResponseMessages(false)
    .select()
    .apis(predicate)
    .build();
    }

    private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
    .title("rj接口服務(wù)")//大標(biāo)題
    .version("1.0")//版本
    .build();
    }
    }


三.在類上面或者在方法上面添加注解:


@RequestMapping(value = "/getUserInfo" ,method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "測(cè)試接口",notes = "獲取用戶名稱")
public Map getUserInfo(String userId,String type){
Map<String, Object> map = new HashMap<String,Object>();
System.out.println(userId);
System.out.println(type);
String userName = myService.getUserName();
logger.info("獲取對(duì)應(yīng)的用戶name:{}",userName);
map.put("name",userName);
return map;
}


四.啟動(dòng)springBoot項(xiàng)目,訪問(wèn)swagger的控制頁(yè)面


訪問(wèn)頁(yè)面的網(wǎng)址:
http://localhost:8080/swagger-ui.html#


到此就完成了springBoot和Swagger的集成,快點(diǎn)去試試吧!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容