引入依赖
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
在微服务中加上配置文件
package com.dian.admin.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
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;
import java.util.HashSet;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket buildDocket() {
HashSet<String> strings = new HashSet<>();
strings.add("application/json");
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(buildApiInfo())
//设置返回数据类型
.produces(strings)
//分组名称
.groupName("1.0")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.dian.admin.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
private ApiInfo buildApiInfo() {
Contact contact = new Contact("点点的swagger文档","","");
return new ApiInfoBuilder()
.title("学生系统-平台管理API文档")
.description("平台管理服务api")
.contact(contact)
.version("1.0.0").build();
}
}
在controller中添加Swagger注解,代码如下所示:
@Api(value = "频道管理", tags = "channel", description = "频道管理")
public class AdChannelController {
}
实体类中
package com.dian.admin.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("ad_channel")
@ApiModel(value = "AdChannel频道对象",description = "这个是详细的信息标识频道的对象POJO")
public class AdChannel implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(notes = "这个是ID是主键",required = true)
private Integer id;//big
/**
* 频道名称
*/
@TableField("name")
@ApiModelProperty(notes = "频道名称",required = false)
private String name;
/**
* 频道描述
*/
@TableField("description")
@ApiModelProperty(notes = "频道描述",required = false)
private String description;
/**
* 是否默认频道
*/
@TableField("is_default")
@ApiModelProperty(notes = "是否默认频道",required = false)
private Boolean isDefault;
@TableField("status")
private Boolean status;
/**
* 默认排序
*/
@TableField("ord")
private Integer ord;
/**
* 创建时间
*/
@TableField("created_time")
private Date createdTime;
}
?
Swagger常用注解
@Api:修饰整个类,描述Controller的作用
@ApiOperation:修饰类的一个方法 标识 操作信息 接口的定义
@ApiParam:单个参数的描述信息
@ApiModel:描述使用到的对象信息
@ApiModelProperty:描述使用到的对象的属性信息
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数的描述信息
@ApiImplicitParam属性:
属性 | 取值 | 作用 |
---|
paramType | | 查询参数类型 | | path | 以地址的形式提交数据 | | query | 直接跟参数完成自动映射赋值 | | body | 以流的形式提交 仅支持POST | | header | 参数在request headers 里边提交 | | form | 以form表单的形式提交 仅支持POST | dataType | | 参数的数据类型 只作为标志说明,并没有实际验证 | | Long | | | String | | name | | 接收参数名 | value | | 接收参数的意义描述 | required | | 参数是否必填 | | true | 必填 | | false | 非必填 | defaultValue | | 默认值 |
启动微服务,访问地址:http://localhost:9001/swagger-ui.html?
官方文档
https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X
|