大佬,首先向您致敬 ,其次请帮忙看下我在学习路上测试的问题:
User(id=null, username=null, birthday=null, sex=null, role=null)
Role(id=null, roleName=null)
Get请求:@ApiOperationSupport(ignoreParameters = {"user.id", "user.role.id"})user.id 参数忽略成功,user.role.id 参数忽略失败;
Get请求:@ApiOperationSupport(ignoreParameters = {"id", "role.id"} 参数都忽略成功
POST请求,使用JSON: ignoreParameters = {"user.id", "user.role.id"} 参数都忽略失败
POST请求,使用JSON:ignoreParameters = {"id", "role.id"} 参数都忽略失败
版本说明:
sprign-boot=2.2.4.RELEASE
knife4j-spring-boot-starter=2.0.1
User.java
package top.simba1949.common;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author Theodore
* @Date 2020/3/3 22:40
*/
@Data
@ApiModel(value = "user", description = "用户")
public class User implements Serializable {
private static final long serialVersionUID = 536743503651429362L;
@ApiModelProperty(name = "id", value = "主键", dataType = "java.lang.Integer")
private Integer id;
@ApiModelProperty(name = "username", value = "用户姓名", dataType = "java.lang.String")
private String username;
@ApiModelProperty(name = "birthday", value = "生日", dataType = "java.time.LocalDateTime")
private LocalDateTime birthday;
@ApiModelProperty(name = "sex", value = "性别,true 为男性, false 为女性", dataType = "java.lang.Boolean")
private Boolean sex;
@ApiModelProperty(name = "role", value = "用户角色", dataType = "top.simba1949.common.Role")
private Role role;
}
Role.java
package top.simba1949.common;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Author Theodore
* @Date 2020/3/3 22:41
*/
@Data
@ApiModel(value = "role", description = "用户角色")
public class Role implements Serializable {
private static final long serialVersionUID = -1075645135706942753L;
@ApiModelProperty(name = "id", value = "角色主键", dataType = "java.lang.Integer")
private Integer id;
@ApiModelProperty(name = "roleName", value = "角色名称", dataType = "java.lang.String")
private String roleName;
}
配置类
package top.simba1949.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.function.Predicate;
import static com.google.common.base.Predicates.or;
import static springfox.documentation.builders.PathSelectors.regex;
/**
* swagger-bootstrap-ui 默认访问地址是:http://${host}:${port}/doc.html
* 注意:使用权限控制需要释放以下三个接口:
* /swagger-resources : Swagger的分组接口
* /v2/api-docs?group=groupName : Swagger的具体分组实例接口,返回该分组下所有接口相关的Swagger信息
* /v2/api-docs-ext?group=groupName : 该接口是SwaggerBootstrapUi提供的增强接口地址,如不使用UI增强,则可以忽略该接口
*
* @Author Theodore
* @Date 2020/3/3 17:33
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Conf {
/**
* springfox.documentation.spring.web.plugins.Docket 用于构建 Springfox 框架
* @return
*/
@Bean
public Docket commonDocket() {
return new Docket(DocumentationType.SWAGGER_2)
// 如果存在多个 Docket ,需要进行分组命名
.groupName("commonDocket-api")
// 设置 meta 信息
.apiInfo(apiInfo("标题:通用开发接口文档", "描述:通用开发接口文档"))
// 启动 api 选择构建器
.select()
// 哪些包路径下属于通用开发接口文档
.apis(RequestHandlerSelectors.basePackage("top.simba1949.controller.common"))
// 路径筛选 PathSelectors.any() 匹配所有接口,也可以自定义匹配哪些接口
.paths(PathSelectors.any())
// 构建
.build();
}
/**
* 自定义匹配哪些接口
* @return
*/
private Predicate<String> postPaths() {
return or(
regex("/api/posts.*"),
regex("/api/comments.*")
);
}
@Bean
public Docket companyDocket() {
return new Docket(DocumentationType.SWAGGER_2)
// 如果存在多个 Docket ,需要进行分组命名
.groupName("companyDocket-api")
// 设置 meta 信息
.apiInfo(apiInfo("标题:公司开发接口文档", "描述:公司开发接口文档"))
// 启动 api 选择构建器
.select()
// 哪些包路径下属于公司开发接口文档
.apis(RequestHandlerSelectors.basePackage("top.simba1949.controller.company"))
// 路径筛选
.paths(PathSelectors.any())
// 构建
.build();
}
private ApiInfo apiInfo(String title, String description) {
// 名称,站点,邮箱地址
Contact contact = new Contact("simba1949", "https://simba1949.blog.csdn.net", "simba1949@outlook.com");
return new ApiInfoBuilder()
// 标题
.title(title)
// 描述
.description(description)
// 服务条款链接
.termsOfServiceUrl("http://hantsy.blogspot.com")
// 联系人
.contact(contact)
// 认证许可
.license("Apache License Version 2.0")
// 认证许可链接
.licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE")
// 版本
.version("2.0")
.build();
}
}
UserController.java
package top.simba1949.controller.common;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSort;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import top.simba1949.common.User;
/**
* @Author Theodore
* @Date 2020/3/3 17:48
*/
@ApiSort(1)
@Api(tags = {"用户模块"})
@RestController
@RequestMapping("user")
public class UserController {
/**
* ignoreParameters = {"user.id", "user.role.id"} user.id 忽略成功
* ignoreParameters = {"id", "role.id"} 参数都忽略成功
* @param user
* @return
*/
@GetMapping("user-str1")
@ApiOperation(value = "获取user-str1")
@ApiOperationSupport(order = 1, author = "theodore", ignoreParameters = {"user.id", "user.role.id"})
public String getStr1(User user){
return "user-str1";
}
/**
* ignoreParameters = {"user.id", "user.role.id"} 参数都忽略失败
* ignoreParameters = {"id", "role.id"} 参数都忽略失败
* @param user
* @return
*/
@PostMapping("user-str2")
@ApiOperation(value = "获取user-str2")
@ApiOperationSupport(order = 2, ignoreParameters = {"user.id", "user.role.id"})
public String getStr2(@RequestBody User user){
return "user-str2";
}
}
大佬,首先向您致敬 ,其次请帮忙看下我在学习路上测试的问题:
User(id=null, username=null, birthday=null, sex=null, role=null)
Role(id=null, roleName=null)
Get请求:@ApiOperationSupport(ignoreParameters = {"user.id", "user.role.id"})user.id 参数忽略成功,user.role.id 参数忽略失败;
Get请求:@ApiOperationSupport(ignoreParameters = {"id", "role.id"} 参数都忽略成功
POST请求,使用JSON: ignoreParameters = {"user.id", "user.role.id"} 参数都忽略失败
POST请求,使用JSON:ignoreParameters = {"id", "role.id"} 参数都忽略失败
版本说明:knife4j-spring-boot-starter=2.0.1
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论