小编SSK*_*SSK的帖子

开放 API 规范 Swagger 中 API 中的对象作为查询字符串参数

我有一个 API,它接受查询参数作为对象。我正在使用它添加多个过滤器来过滤结果。

当我收到来自 swagger 的请求时,控制器中的过滤器对象为 null。

userFilter是 POJO 类。它被用作 aquery param并且在控制器中,它作为 null 出现。

在swagger上,显示如下

招摇截图

userFilter当尝试从 userFilter 访问任何字段时,对象未构造并在控制器类中获取 NullPointerException。

query-string swagger swagger-ui openapi

3
推荐指数
1
解决办法
3687
查看次数

如何使用 springdoc openapi 在 swagger ui 上有条件地忽略 PathVariable

我正在从 springfox 2.9.0 迁移到 springdoc-openapi-ui 1.2.33。我需要根据条件在 swagger ui 上显示或隐藏 PathVariable 。我有两条路径如下

  1. 字符串名称标识符 = "{fisrtName}/{lastName}"

  2. 字符串名称标识符 = "{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完成的

谢谢

swagger swagger-ui spring-boot springdoc springdoc-openui

2
推荐指数
1
解决办法
8245
查看次数

Power Query:具有聚合列的动态列表的 Table.Group

为了达到我的目标,我奋斗了几个小时。

\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   })\n
Run Code Online (Sandbox Code Playgroud)\n

我定义了一个名为 SumColumns 的列表:

\n

SumColumns = {"销售额 (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)\n
Run Code Online (Sandbox Code Playgroud)\n …

group-by dynamic m powerquery powerbi

2
推荐指数
1
解决办法
2762
查看次数

java - 如何在java,springboot中避免多个or(||)进行空验证

我有来自用户的三个输入

字符串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 测试代码,所以我也需要减少测试用例的数量。

java java-8 spring-boot

0
推荐指数
1
解决办法
92
查看次数