springboot集成swagger

1、引入依賴

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.mine</groupId>
	<artifactId>springboot-swagger</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
	</parent>

	<dependencies>
		<!-- SpringBoot整合Web組件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

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

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
	</dependencies>
	<!-- 注意: 這裏必須要添加, 否者各種依賴有問題 -->
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/libs-milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>
</project>

2、新建config

SwaggerConfig

package com.mine.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
	@Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            //加了ApiOperation註解的類,才生成接口文檔
            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
            //包下的類,才生成接口文檔
            //.apis(RequestHandlerSelectors.basePackage("io.renren.controller"))
            .paths(PathSelectors.any())
            .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("我的系統")
            .description("API文檔")
//            .termsOfServiceUrl("https://www.baidu.com")
            .version("1.0")
            .build();
    }
}

3、新建model

UserRequest

package com.mine.model;

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

@Data
@ApiModel(description= "用戶請求信息")
public class UserRequest {
	@ApiModelProperty(value="用戶名稱", required=true, example="zhangsan")
	private String username;
}

UserResponse

package com.mine.model;

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

@Data
@ApiModel(description= "用戶響應信息")
public class UserResponse {
	@ApiModelProperty(value="用戶名稱", required=true, example="zhangsan")
	private String username;

	@ApiModelProperty(value="用戶中文名稱", required=true, example="張三")
	private String name;

	@ApiModelProperty( value="年齡", required=true, example="10")
	private Integer age;
}

4、新建controller

UserController

package com.mine.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.mine.model.UserRequest;
import com.mine.model.UserResponse;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@RestController
@Api(value="用戶信息接口")
public class UserController {
	@ApiOperation(value="獲取用戶信息")
	@GetMapping(path="/getUser")
	public UserResponse getUser(UserRequest userRequest) {
		UserResponse userResponse = new UserResponse();
		userResponse.setName("李四");
		userResponse.setUsername("lisi");
		userResponse.setAge(20);
		return userResponse;
	}

	@ApiOperation(value="獲取歡迎信息")
	@GetMapping(path="/index")
	public String index(String name) {
		return "Hello " + name;
	}
}

5、新建啓動類

AppSwagger

package com.mine;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppSwagger {

	public static void main(String[] args) {
		SpringApplication.run(AppSwagger.class, args);
	}

}

6、啓動項目,訪問下面url

http://localhost:8080/swagger-ui.html

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