使用GroupedOpenApi
定义API组时,在参数列表中不存在添加到每个端点的通用参数集。
下面是各自的代码
@Bean
public GroupedOpenApi v1Apis() {
return GroupedOpenApi.builder().group("v1 APIs")
// hide all v2 APIs
.pathsToExclude("/api/v2/**", "/v2/**")
// show all v1 APIs
.pathsToMatch("/api/v1/**", "/v1/**")
.build();
}
将标准标头添加到所有端点的类
@Component
public class GlobalHeaderAdder implements OperationCustomizer {
@Override
public Operation customize(Operation operation, HandlerMethod handlerMethod) {
operation.addParametersItem(new Parameter().$ref("#/components/parameters/ClientID"));
operation.addSecurityItem(new SecurityRequirement().addList("Authorization"));
List<Parameter> parameterList = operation.getParameters();
if (parameterList!=null && !parameterList.isEmpty()) {
Collections.rotate(parameterList, 1);
}
return operation;
}
}
实际输出
预期产量
要重现此问题,请克隆https://github.com/debargharoy/springdoc-test
解决方法
添加要包含/排除在应用程序属性文件中的路径可以解决该错误。但是,在代码级别上的某些东西将不胜感激。
答案 0 :(得分:2)
在构建Api组时附加所需的const mac = req.query.mac;
const macArr = mac.split(',');
var sql = mysql.format("SELECT * FROM user_email WHERE macId IN (?)", macArr);
connection.query(sql, function(err, row) ...{ ... .. }
对象。
OperationCustomizer
编辑:答案已参考@Value not providing values from application properties Spring Boot
更新