Spring Boot整合knife4j实现Api文档
一、简介
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!
knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j
二、项目搭建
1、maven引入
1 | <dependencies> |
2、创建Swagger配置文件
首先创建application-dev.yml
和application-prod.yml
开发和生产环境,最后在application.yml
中配置当前环境,这样就可以在生产环境中关闭在线接口文档了。另外也可以使用注解@Profile
设置环境
1 | spring: |
1 | package com.csdn.demo1.config; |
三、knife项目使用
1、常用注解介绍
@Api()
作用在类上,用来标注该类具体实现内容。
参数:
tags:类标签,一般用来写类的名称或作用。(常用)
description:可描述描述该类作用。
@ApiOperation()
用于方法的说明
参数:
value :方法说明(常用)
notes :注释说明
httpMethod : 说明这个方法被请求的方式
response :方法的返回值的类型
@ApiOperationSupport()
(knife4j增加特性)用于接口方法排序,作者信息描述等。
参数:
order:排序
author:作者信息
@ApiImplicitParam()
对单个参数的说明
参数:
name :参数名。
value : 参数的具体意义,作用。(常用)
required : 参数是否必填。 (常用)
dataType :参数的数据类型。 (常用)
paramType :查询参数类型,这里有几种形式:
类型 作用
path 以地址的形式提交数据
query 直接跟参数完成自动映射赋值
body 以流的形式提交 仅支持POST
header 参数在request headers 里边提交
form 以form表单的形式提交 仅支持POST
@ApiModel()
用于描述一个数据模型的信息,即我们常用的实体、VO类、DTO类等描述
参数:
value : 数据模型名称。(常用)
description:具体描述
parent:父类
@ApiModelProperty()
用于描述数据模型的属性信息
参数:
value:字段说明 (常用)
name:重写属性名字
dataType:重写属性类型
required:是否必填 (常用)
example:举例说明 (常用)
hidden:隐藏
@ApiIgnore
自动生成接口说明时忽略
2、项目中的简单使用
在项目启动中我还遇到了javax/validation/constraints/Min
报错,原因是我使用了最新的springboot框架版本,新版本没有自动引入 validation对应的包,所以要想使用校验功能要手动引入包。在pom.xml引入依赖即可
1 | <dependency> |
启动项目后,访问http://localhost:8080/doc.html
即可(ip和端口根据实际需求来)。根据接口的不同需求,结合官方文档,可以写出自己需要的个性化需求。下面是我自己测试的demo
官方文档参考