我有一个 API,它接受查询参数作为对象。我正在使用它添加多个过滤器来过滤结果。
当我收到来自 swagger 的请求时,控制器中的过滤器对象为 null。
userFilter是 POJO 类。它被用作 aquery param并且在控制器中,它作为 null 出现。
在swagger上,显示如下
userFilter当尝试从 userFilter 访问任何字段时,对象未构造并在控制器类中获取 NullPointerException。
我正在从 springfox 2.9.0 迁移到 springdoc-openapi-ui 1.2.33。我需要根据条件在 swagger ui 上显示或隐藏 PathVariable 。我有两条路径如下
字符串名称标识符 = "{fisrtName}/{lastName}"
字符串名称标识符 = "{fisrtName}"
我根据要求传递上述 nameIdentifier 之一。
我对上述路径使用单个控制器,如下所示
@GetMapping(path = "persons/${nameIdentifier}/display")
public List<Person> getPersons(@PathVariable String fisrtName,
@IgnoreLastName @PathVariable Optional<String> lastName) {
}
Run Code Online (Sandbox Code Playgroud)
在 springfox 中,我能够使用docket.ignoredParameterTypes(IgnoreLastName.class)如下所示的方法来实现它。
@Bean
public Docket api() {
Docket docket;
docket = new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("go.controller")).paths(PathSelectors.any()).build()
.apiInfo(apiInfo());
if (!nameIdentifier.contains("lastName")) {
docket.ignoredParameterTypes(IgnoreLastName.class);
}
return docket;
}
Run Code Online (Sandbox Code Playgroud)
但在 springdoc open api 中我无法实现相同的目标。同样感谢您的帮助。编码是用java完成的
谢谢
为了达到我的目标,我奋斗了几个小时。
\n目标是在使用 Table 时使用包含列名的列表进行聚合。分组而不是固定的列列表。
\n我已经将 GroupColumns 定义为“键”的列表,并且效果很好。
\n例子:
\n= \nTable.Group(\n Source,\n GroupColumns,\n {{\n "Sales (M\xe2\x82\xac)", each List.Sum([#"Sales (M\xe2\x82\xac)"]), type number}, \n {"Sales (Qty MU)", each List.Sum([#"Sales (Qty MU)"]), type number}\n })\nRun Code Online (Sandbox Code Playgroud)\n我定义了一个名为 SumColumns 的列表:
\nSumColumns = {"销售额 (M\xe2\x82\xac)","销售额 (数量 MU)"}
\n现在我找不到创建列表的语法,该列表将根据 SumColumns 列表动态创建我想要的所有列。
\n我以为我会在这里得到答案,但我不明白“LocalContext”部分:How do Iproperly use table.group in a PowerQuery query todynamicly summar不同的行和列?
\n我试过这个:
\n= Table.Group(\n Source,\n {GroupColumns},\n {{\n SumColumns,\n (LocalContext) => List.Sum(Table.Column(LocalContext, SumColumns)),\n type number\n }}\n)\nRun Code Online (Sandbox Code Playgroud)\n … 我有来自用户的三个输入
字符串key1
字符串key2
字符串key3
用户一次只能传递一个键作为输入。我正在验证它如下。
在我的代码中,我正在检查
if(key1 == null && key2 == null && key3 == null){
throw new Exception("invalid input");
}else if((null != key1 && null != key2) || (null != key2 && null != key3) || (null != key1 && null != key3)){
throw new Exception("invalid input");
}
Run Code Online (Sandbox Code Playgroud)
我们可以避免这些or条件吗?可能正在使用Java-8?
对此的任何想法/建议将不胜感激。
注意:我有一个 JUnit 测试代码,所以我也需要减少测试用例的数量。
spring-boot ×2
swagger ×2
swagger-ui ×2
dynamic ×1
group-by ×1
java ×1
java-8 ×1
m ×1
openapi ×1
powerbi ×1
powerquery ×1
query-string ×1
springdoc ×1