小编bra*_*mdc的帖子

Swagger/OpenAPI 注释 V3 - 在 swagger 注释中使用枚举值

我正在使用从以下依赖项导入的 Swagger/OpenApi V3 注释创建我们应用程序的 API 描述:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.1.45</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

其中一个注解是一个@Schema注解,它接受一个名为allowableValues允许字符串数组的属性:

@Schema(description = "example", 
        allowableValues = {"exampleV1", "exampleV2"}, 
        example = "exampleV1", required = true)
private String example;
Run Code Online (Sandbox Code Playgroud)

现在我想使用在我们的 Enum 类上构造的自定义方法,该方法返回允许的字符串数组,因此不需要在每次向 Enum 添加类型时添加它。这样我们就可以像这样使用它:

public enum ExampleEnum {
    EXAMPLEV1, EXAMPLEV2;
    public static String[] getValues() {...}
}

@Schema(description = "example", 
        allowableValues = ExampleEnum.getValues(), 
        example = "exampleV1", required = true)
private String example;
Run Code Online (Sandbox Code Playgroud)

现在这不会编译,因为在执行注释时该方法是未知的。是否有这样的解决方案允许在 swagger V3 注释属性值中使用枚举?

查看以下资源:

您可以在全局组件部分定义可重用的枚举,并通过 $ref 其他地方引用它们。

最坏的情况是,我确实可以在一个常量位置定义它,并且在将类型添加到 Enum 之后,只需要在另一个位置添加类型。但如果可能的话,我首先想探索上述解决方案。

没有说明使用任何类或动态生成的值。

是关于在 …

java enums annotations swagger openapi

8
推荐指数
2
解决办法
7274
查看次数

通过本地 pom 禁用 Maven 设置镜像

在我的 maven settings.xml 是以下片段:

<mirrors>
    <mirror>
        <!--This sends everything to our company mirror -->
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>[company-mirror]</url>
    </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

这会将所有内容发送到我们公司的镜像,如果无法解决,我们将从 maven 存储库中获取。

现在,我们还通过他们的 maven 联系从我们的一项技术的供应商那里收到错误修复。问题是我们公司的镜像不会自动查询这个关系,我可以很容易地在 settings.xml 中提供以下镜像编辑:

<mirrors>
  <mirror>
    <id>[vendor-id]</id>
    <mirrorOf>[vendor-mirror]</mirrorOf>
    <url>[vendor-url]</url>
 </mirror>
 <mirror>[company-mirror-settings]</mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

然后它将查询正常,但我们不能为我们公司维护的仅查询公司镜像的构建服务器执行此操作。

有没有办法在我们本地的 pom.xml/project 中做到这一点,而无需触及任何外部设置?

我曾尝试在我们的 pom.xml 中进行以下操作,但没有奏效:

<project>
...
<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>[vendor-id]</id>
        <name>[vendor-name]</name>
        <url>[vendor-url]</url>
    </repository>
</repositories>
...
</project>
Run Code Online (Sandbox Code Playgroud)

运行 mvn clean install 得到以下错误:

[ERROR] Failed to execute goal on project <project-name>: Could not resolve dependencies for project <project-name>:jar:1.2.0-SNAPSHOT: Coul
d not find …
Run Code Online (Sandbox Code Playgroud)

java maven

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

Camel File 组件 - Idempotrepository 和 InProgressRepository 之间有什么区别

IdempotityRepository 和 InProgressRepository 之间到底有什么区别?我从文件组件页面有以下定义:

  • Idempotrepository:“使用幂等消费者 EIP 模式让 Camel 跳过已处理文件的选项”
  • InProgressRepository:“正在进行的存储库用于计算当前正在使用的正在进行的文件。”

对我来说,这些是相同的定义,只是措辞略有不同。它们还可以使用相同的幂等存储库。

所以我有点困惑,我需要两者吗?或者幂等存储库足够好吗?

file apache-camel idempotent

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

标签 统计

java ×2

annotations ×1

apache-camel ×1

enums ×1

file ×1

idempotent ×1

maven ×1

openapi ×1

swagger ×1