第一步:引入依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency>
第二步:写入配置
方法一:编写一个工具类
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.EnableSwagger2WebMvc;@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {private ApiInfo groupApiInfo(){return new ApiInfoBuilder().title("herbig接口文档").description("Smart Claims RESTful APIs").termsOfServiceUrl("http://localhost:8077/").contact(new Contact("herbig祺","","邮箱")).description("测试描述").version("4.0").build();}@Beanpublic Docket appApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(groupApiInfo()).groupName("移动端接口").select().apis(RequestHandlerSelectors.basePackage("com.herbig.app")).paths(PathSelectors.any()).build();}@Beanpublic Docket pcApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(groupApiInfo()).groupName("网页端接口").select().apis(RequestHandlerSelectors.basePackage("com.herbig.pc")).paths(PathSelectors.any()).build();}}
方法二:在yml里面配置
knife4j:enable: trueopenapi:title: herbig接口文档description: 测试描述email: 邮箱concat: herbig祺url: http://localhost:8077/version: v4.0license: Apache 2.0license-url: http://localhost:8077/terms-of-service-url: http://localhost:8077/group:test1:group-name: 移动端接口api-rule: packageapi-rule-resources:- com.knife4j.demo.new3test2:group-name: 网页端接口api-rule: packageapi-rule-resources:- com.knife4j.demo.new3
第三步:启动项目——访问地址 http://ip:端口号/doc.html#/
番外:如果提供给别人接口API时不希望所有人都能看到可以加一些登录限制 在yml文件中
knife4j:enable: truebasic:enable: truepassword: 123123username: 123123
这样访问地址就会出现登录提示,出入用户名和密码即可查看
测试用例:
@RestController
@RequestMapping("/one")
@Api(value = "测试接口",tags = "测试接口")//接口文档的api组名
public class Knife4jController {@ApiOperation(value = "接口释义", notes = "接口释义")//接口释义@RequestMapping(value = "/two", method = RequestMethod.POST)@ApiImplicitParams({@ApiImplicitParam(name = "canshu", value = "参数", required = false)//参数 required是否必填})public String doGetStudyFileDataList() {return "啦啦啦,成功了";}
}
结果