SpringBoot集成knife4j
文章目录
前言
以前我们习惯来用Swagger来调试接口和给客服端开发人员来看接口文档,今天我们试着集成使用一下knife4j。
一、目录结构
二、集成步骤
1.pom文件:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>1.9.6</version>
</dependency>
2.SwaggerConfig配置:
package org.springbootframework.core.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.github.xiaoymin.knife4j.spring.annotations.EnableSwaggerBootstrapUi;
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
@EnableSwaggerBootstrapUi
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(""))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger-bootstrap-ui RESTful APIs")
.description("swagger-bootstrap-ui")
.termsOfServiceUrl("http://localhost:8888/")
.contact("wang_langzi@163.com")
.version("1.0")
.build();
}
}
3.启动项MainApplication配置:
@EnableSwagger2
4.测试代码UserController:
package com.wyq.boot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
//说明接口文件
@Api(tags = "用户接口")
@Controller
@RequestMapping("/user")
public class UserController {
/**
* 保存数据
* @param user
* @return
*/
@PostMapping(value = "/save")
//方法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
@ApiImplicitParam(name = "user", value = "新增用户数据")
//说明是什么方法(可以理解为方法注释)
@ApiOperation(value = "添加用户", notes = "添加用户")
public String saveUser(User user){
return "保存成功";
}
/**
* 根据id查询用户
* @param id
* @return
*/
@GetMapping(value = "findById")
@ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
public String getUser(Integer id){
return "";
}
@DeleteMapping(value = "deleteById")
@ApiOperation(value = "根据id删除数据", notes = "删除用户")
public String delete(Integer id){
return "删除成功";
}
}