springboot整合swagger2,看这一篇就可以了

springboot整合swagger2

    • swagger2
    • 添加依赖
    • 配置类
    • 注解介绍
    • 运行效果
    • 源代码

swagger2

swagger是个非常不错的接口文档工具,简单易用,方便后端开发人员和前端同学进行接口对接。文档直观,可操作。此处笔者介绍springboot整合swagger2。

添加依赖

  • swagger2 为核心依赖
  • swagger-ui 主要用于前端ui展示

 
     org.springframework.boot
     spring-boot-starter-web
 
 
 
 
     io.springfox
     springfox-swagger2
     2.9.2
 

 
     io.springfox
     springfox-swagger-ui
     2.9.2
 

配置类

  • 一定要注意增加@Configuration和@EnableSwagger2注解,前者作用:spring启动时注入配置类,后者作用是开启swagger2的配置。
  • .apis配置api文档路径,一定要正确,配置到controller路径。
  • apiInfo() 主要是api文档的信息介绍。
@Configuration
@EnableSwagger2
public class Swagger2Config {
	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(apiInfo())
				.select()
				/**
				 * 配置swagger api包路径
				 */
				.apis(RequestHandlerSelectors.basePackage("com.hugo.talk.basic.controller"))
				.paths(PathSelectors.any())
				.build()
				.tags(new Tag("BasicController", "spring-all 基础模块"));
	}

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder().title("spring-all API")
				.description("spring-all API reference for developers")
				.contact(new Contact("hugo0129", "https://github.com/hugo0129/spring-all", "[email protected]"))
				.version("1.0")
				.build();
	}

}

注解介绍

  • @Api(tags = “BasicController”):作用于controller类,用于标注controller类,tags是为不同的controller加上注释说明
  • @ApiOperation(“get请求参数测试”):作用于方法,用于标注方法的作用。
  • @ApiModel(description = “Person实体类”):作用于实体类,用于标注实体类的业务作用。
  • @ApiModelProperty(“姓名”):作用于属性,用于标注属性的业务作用。
@Data
@ApiModel(description = "Person实体类")
public class Person {
	@ApiModelProperty("姓名")
	private String name;

	@ApiModelProperty("姓名")
	private Integer age;

	@ApiModelProperty("性别:0-未知 1-男性 2-女性")
	private Integer sex;

	@ApiModelProperty("爱好")
	private String hobby;
}

运行效果

启动springboot项目,访问:localhost:8080/swagger-ui.html
springboot整合swagger2,看这一篇就可以了_第1张图片
可以对每个方法进行测试,请求:
springboot整合swagger2,看这一篇就可以了_第2张图片
响应:
springboot整合swagger2,看这一篇就可以了_第3张图片

源代码

  • github地址

  • 后续会对springboot相关知识进行持续更新和分享。

你可能感兴趣的:(spring,springboot)