Swagger2配置記錄-接口文檔

 

 

1、添加依賴到你的項目裏

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

 2、添加swagger的系統配置

package com.bingchuan.swagger.config;

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;

/**
 * API文檔
 *
 * @author : bingchuan
 * @date : 2020/7/3 9:48
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {


    @Bean
    public Docket createSwaggerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiinfo())
                //選擇顯示的接口所在的路徑
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.bingchuan.swagger"))
                .paths(PathSelectors.any())
                .build();

    }

    /**
     * 構建api文檔相關信息
     *
     * @return
     */
    private ApiInfo buildApiinfo() {
        return new ApiInfoBuilder()
                .title("標體")
                .version("version")
                .description("描述內容")
                .contact(new Contact("sanshu", "www.bingchuanai.club", "[email protected]"))
                .build();

    }


}

 

 3、控制層添加配置

import com.bingchuan.swagger.dto.DtoEnglishWordRequest;
import com.bingchuan.swagger.dto.DtoResponse;
import com.bingchuan.swagger.service.EnglishWordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 英語單詞服務
 *
 * @author : bingchuan
 * @date : 2020/7/1 17:12
 */
@Api(value = "英語單詞服務接口", tags = "英語單詞服務接口")
@RestController
@RequestMapping(value = "english/word")
public class EnglishWordController {

    private EnglishWordService wordService;

    @Autowired
    public EnglishWordController(EnglishWordService wordService) {
        this.wordService = wordService;
    }

    @PostMapping(value = "add")
    @ApiOperation(value = "添加英語單詞接口", notes = "添加英語單詞節點")
    public DtoResponse addEnglishWord(
            @ApiParam(value = "DtoEnglishWordRequest", name = "英語單詞請求對象", required = true)
            @RequestBody DtoEnglishWordRequest dtoEnglishWordRequest) {
        return wordService.addEnglishWord(dtoEnglishWordRequest);
    }
}

4、請求對象添加配置

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @author : bingchuan
 * @date : 2020/7/1 16:54
 */

@Data
@ApiModel(description = "英語單詞請求對象")
public class DtoEnglishWordRequest implements Serializable {

    @ApiModelProperty(position = 1, value = "單詞編碼", example = "name")
    private String wordCode;
    @ApiModelProperty(position = 2, value = "單詞類型,詞性", example = "n.")
    private String wordType;
    @ApiModelProperty(position = 3, value = "中文含義", example = "姓名")
    private String chineseMean;
    @ApiModelProperty(position = 4, value = "單詞例句", example = "My name is SanShu")
    private String wordExample;
    @ApiModelProperty(position = 5, value = "單詞描述", example = "我的名字是三樹")
    private String wordDescription;


}

 5、響應對象添加配置

import com.bingchuan.swagger.utils.EResultCode;
import io.swagger.annotations.ApiModel;

/**
 * @author Bingchuan
 * @date 2020-03-07
 */

@ApiModel(description = "響應對象")
public class DtoResponse extends DtoResultMessage {


    public DtoResponse(EResultCode resultCode) {
        super(resultCode);
    }

}
import com.bingchuan.swagger.utils.EResultCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * @author shanshu
 * @date 20200307
 */
@ApiModel(description = "響應消息結果")
public class DtoResultMessage implements Serializable {

    @ApiModelProperty(value = "響應編碼", required = true)
    private String code;

    @ApiModelProperty(value = "響應描述", required = true)
    private String message;

    DtoResultMessage() {

    }

    DtoResultMessage(EResultCode resultCode) {
        this.code = resultCode.getCode();
        this.message = resultCode.getMessage();
    }


    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

6、訪問地址:

http://${ip}:${port}/${projectName}/swagger-ui.html

注:可以在swagger接口文檔中調用和測試接口的功能。可以給對接方提供接口文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章