springboot 之 配置swagger2

1、首先是pom.xml文件加关于seagger2的maven包引入

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

2、配置swagger2的文件,创建一个swagger2.java的一个配置类,具体内容如下:

package com.infosky.lp.common.config;

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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2 {

	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).
				select().apis(RequestHandlerSelectors.basePackage("com.mao.demo.controller")).
				paths(PathSelectors.any()).build();
	}
	
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder().title("springboot利用swagger构建api文档").
				description("简单优雅的restful风格").termsOfServiceUrl("http://blog.csdn.net/forezp").
				version("1.0").build();
		
	}
	
}

3、项目从service、dao层等文件和没配swagger2时都没什么区别,区别主要是在controller层;

这里需要在controller接口方法上加注解,例如我的controller

package com.infosky.lp.controller;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
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;

import com.infosky.lp.entity.User;
import com.infosky.lp.service.DemoService;

import io.swagger.annotations.ApiOperation;

@RequestMapping("/demo")
@RestController
public class DemoController {

	@Autowired
	DemoService demoService;
	
	@ApiOperation(value="查询列表",notes="查询列表")
	@RequestMapping(value="/{username}",method=RequestMethod.GET)
	public Optional<User> getDemo(@PathVariable("username")String username) {
		return demoService.findUserByName(username);
	}
	
}

加了一个@ApiOperation(value="查询列表",notes="查询列表")注解。

以上就完成了swagger2的配置了。访问  http://localhost:8081/swagger-ui.html 即可,看下效果图如下:

springboot 之 配置swagger2

springboot 之 配置swagger2

到这里,swagger完成!!!

最后贴一下swagger2的其他的一些注解:

@Api:修饰整个类,用于描述controller类
@ApiOperation:描述类的方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiResponse:HTTP响应的一个描述
@ApiResponses:HTTP响应的整体描述
@ApiIgnore:使用该注解,表示swaggewr2忽略这个API