【Spring Boot&&Spring Cloud系列】Spring Boot項目集成Swagger UI


前言

Swagger 是一個規范和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能強大的API從未如此簡單。

一、修改pom.xml文件,加入依賴

           <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

二、添加Swagger配置類

package com.slp.util;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import static springfox.documentation.builders.PathSelectors.regex;

/**
 * Created by sangliping on 2017/8/17.
 */
@Configuration
@EnableSwagger2
public class Swaggers {

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        ApiInfo apiInfo = new ApiInfo("sample of springboot", "sample of springboot", null, null, null, null, null);
        Docket docket = new Docket(DocumentationType.SWAGGER_2).select().paths(regex("/user/.*")).build()
                .apiInfo(apiInfo).useDefaultResponseMessages(false);
        return docket;
    }


        /*private ApiInfo apiInfo() {
            return new ApiInfoBuilder().title("測試API")
                    .description("測試API1")
                    .version("1.0.0")
                    .build();
        }*/
        /* @Bean
            public Docket createRestApi() {
                return new Docket(DocumentationType.SWAGGER_2)
                        .apiInfo(apiInfo())
                        .select()
                        .apis(RequestHandlerSelectors.basePackage("com.slp.web"))
                        .paths(regex("/user/.*"))
                        .build();
            }
        */

}

三、編寫測試用的Controller類

package com.slp.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;


/**
 * Created by sangliping on 2017/8/17.
 * Swagger常用注解:
 *    @Api:修飾整個類,描述Controller的作用
 *    @ApiOperation:描述一個類的一個方法,或者說一個接口
 *    @ApiParam:單個參數描述
 *    @ApiModel:用對象來接收參數
 *    @ApiProperty:用對象接收常熟市,描述對象的一個字段
 *    @ApiIgnore:使用該注解時忽略這個API
 *    @ApiResponse:HTTP響應其中一個描述
 *    @ApiResponses:HTTP響應整個描述
 */
@RestController
@RequestMapping("/user")
@Api(value = "Shop")
public class SpringBootController {
    @ApiOperation(value = "獲取helloworld",notes = "簡單的Spring boot請求")
    @RequestMapping
    String home (){
        return "HELLO WORLD";
    }

    @ApiOperation(value = "獲得參數",notes = "根據參數中的classNo和studentName是的字符串相加")
    @ApiImplicitParams({@ApiImplicitParam(name = "classNo",value ="班級編號",required= true,dataType="String")})
    @RequestMapping(value="/class/{classNo}/to/{studentName}",method = RequestMethod.GET)
    String world(@PathVariable("classNo")String classNo,@PathVariable("studentName")String studentName){
      return classNo + " "+studentName;
    }


}

四、Swagger啟動

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM