快速集成
环境及坐标
需要提前搭好springboot 项目的环境,搭建成功后添加如下依赖(springboot 已经对依赖进行了版本控制, 所以这里没有声明版本号)
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
下面是配置类
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2) // 选择swagger2版本
.apiInfo(apiInfo()) //定义api文档汇总信息
.select()
.apis(RequestHandlerSelectors
.basePackage("com.xxx.xxxxxx")) // 指定生成api文档的包
.paths(PathSelectors.any()) // 指定所有路径
.build();
}
/**
* 构建文档api信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("文档标题") // 文档标题
.description("描述") //描述
.version("1.0.0") //文档版本号
.termsOfServiceUrl("http://localhost:8080") //网站地址
.build();
}
}
启动项目, 访问"http://host:port/doc.html"正常进入就是成功
下面是注解, 及一些用法
1.@Api注解(类注解)
/**
* @author qinple
* 用法示例如下: 一般写在接口上
*/
@Api(value = "头条频道管理", tags = "channel", description = "频道管理API(帮助文档)")
public interface ChannelControllerApi{
//.....你的代码
}
2.@ApiOperation注解(方法注解)
/**
* 用法示例如下:一般写在接口的抽象方法上
*/
@ApiOperation("查询频道列表,根据名称进行分页模糊查询, 返回分页查询结果")
public abstract ResponseResult findByNameAndPage(ChannelDto channelDto);
3.@ApiModelProperty注解(属性注解)
/**
* 用法示例如下: 一般用在实体类上,如dto等
* required 属性默认为false
*/
@ApiModelProperty(value = "频道ID")
private Integer id;
@ApiModelProperty(value = "频道名称", required = true)
private String name;
@ApiModelProperty(value = "频道描述", required = false)
private String description;
大致的就这些, 如有问题留言提醒, 谢谢.