spring boot 配置 swagger2

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

引入jar包

 <dependency>
	<groupId>io.springfoxgroupId>
	<artifactId>springfox-swagger2artifactId>
	<version>2.7.0version>
dependency>
<dependency>
	<groupId>io.springfoxgroupId>
	<artifactId>springfox-swagger-uiartifactId>
	<version>2.7.0version>
dependency>

<dependency>
	<groupId>com.github.xiaoymingroupId>
	<artifactId>swagger-bootstrap-uiartifactId>
	<version>1.6version>
dependency>

增加配置:

package com.aop8.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("com.aop8"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("商城API")
                .contact(new Contact("zhangsan", "http://www.baidu.com", "[email protected]"))
                .version("1.0")
                .build();
    }
}

com.aop8:扫描包的目录

增加Swagger2的扫描注解:

实际就增加 一行注解:@EnableSwagger2

package com.aop8;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableTransactionManagement
@SpringBootApplication
@EnableSwagger2   //增加这一行注解就可以了
public class NbeebankApplication extends SpringBootServletInitializer {

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

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(NbeebankApplication.class);
	}	 
}

修改拦截器

swagger2 API 接口文档生成,需要调用内置的接口地址:http://localhost:5680/zxmall/v2/api-docs,所以在项目内部需要对 /v2/api-docs的请求允许通过。

spring boot 配置 swagger2_第1张图片

不同的项目,拦截器或过虑器都不一样,要结合项目来修改。

Swagger2相关注解说明

@Api:用在请求的类上,表示对类的说明
	tags="说明该类的作用,可以在UI界面上看到的注解"
	value="该参数没什么意义,在UI界面上也看到,所以不需要配置"

@ApiOperation:用在请求的方法上,说明方法的用途、作用
	value="说明方法的用途、作用"
	notes="方法的备注说明"

@ApiImplicitParams:用在请求的方法上,表示一组参数说明
	@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
	    name:参数名
	    value:参数的汉字说明、解释
	    required:参数是否必须传
	    paramType:参数放在哪个地方
	        · header --> 请求参数的获取:@RequestHeader
	        · query --> 请求参数的获取:@RequestParam
	        · path(用于restful接口)--> 请求参数的获取:@PathVariable
	        · body(不常用)
	        · form(不常用)	   
	    dataType:参数类型,默认String,其它值dataType="Integer"	   
	    defaultValue:参数的默认值
	    
@ApiResponses:用在请求的方法上,表示一组响应
	@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
	    code:数字,例如400
	    message:信息,例如"请求参数没填好"
	    response:抛出异常的类
	    
@ApiModel:用于响应类上,表示一个返回响应数据的信息
			(这种一般用在post创建的时候,使用@RequestBody这样的场景,
			请求参数无法使用@ApiImplicitParam注解进行描述的时候)
	@ApiModelProperty:用在属性上,描述响应类的属性

测试:

访问地址:http://localhost:端口号/项目名称/swagger-ui.html
当然,也有很多spring boot的项目是没有项目名称的,http://localhost:端口号/swagger-ui.html

本项目的地址是 http://localhost:5680/zxmall/swagger-ui.html

spring boot 配置 swagger2_第2张图片

UI界面美化

在上面引入了第三方的UI界面美化jar包

<dependency>
	<groupId>com.github.xiaoymingroupId>
	<artifactId>swagger-bootstrap-uiartifactId>
	<version>1.6version>
dependency>

第三方的UI界面地址/doc.html,基于本项目地址是http://localhost:5680/zxmall/doc.html

spring boot 配置 swagger2_第3张图片

你可能感兴趣的:(#,Spring,Boot,#,spring,cloud)