1. 程式人生 > >SpringBoot和swagger2整合

SpringBoot和swagger2整合

SpringBoot和swagger2整合學習記錄

一.引入swagger2相關依賴

       <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> <dependency> <groupId>io.springfox</groupId> <artifactId
>
springfox-swagger2</artifactId> <version>2.7.0</version> </dependency>

二.加入swagger2配置類

package spring.boot.base.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; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("spring.boot")) .paths(PathSelectors.any()).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("janis Manage Swagger RESTful APIs") .description("自我整合最強大 Swagger API 服務") .termsOfServiceUrl("http://swagger.io/") .contact(new Contact("janis", "127.0.0.1", "[email protected]")) .version("1.0") .build(); } }

此處需要更改basePackage(“spring.boot”).
"spring.boot"是我專案中的基包,只有更換成你當前專案的基包時,啟動在啟動的時候才能對該包下進行掃描查詢swagger的註解,將介面類和介面方法生成API,展示在swagger-ui頁面上;

三.啟動類處配置swagger註解

package spring.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 基礎模組的啟動類
 * @author pengchen
 * @date 2018-12-02:下午 9:57
 */
@SpringBootApplication
@EnableSwagger2
public class BaseApplication {
    public static void main(String[] args) {
        SpringApplication.run(BaseApplication.class);
    }

}

此處新增的註解@EnableSwagger2

四.controller類和方法加入swagger註解

package spring.boot.web.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import spring.boot.dto.ResultDTO;
import spring.boot.dto.StatusCode;
import spring.boot.po.Label;
import spring.boot.service.LabelService;

import java.util.List;

/**
 * @author pengchen
 * @date 2018-12-08:下午 4:45
 */
@Api("標籤")
@RestController
@RequestMapping("label")
public class LabelController {

    @Autowired
    private LabelService labelService;

    /**
     * 新增一個
     * @param label
     * @return
     */
    @ApiOperation("新增一個標籤")
    @PostMapping
    public ResultDTO add(@RequestBody Label label){
        labelService.saveLabel(label);
        return new ResultDTO(true,StatusCode.OK,"新增成功",null);
    }

@Api:

作用在類上,用來標註該類具體實現內容。表示標識這個類是swagger的資源 。
引數:

  1. tags:可以使用tags()允許您為操作設定多個標籤的屬性,而不是使用該屬性。
  2. description:可描述描述該類作用。

@ApiOperation:

用於方法,表示一個http請求的操作 。