gpt4 book ai didi

java - 如何使用 Swagger 生成的客户端 (Feign)

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:38 24 4
gpt4 key购买 nike

按照此 post 中的说明生成客户端库后我试图在我的消费者中使用这个库,我添加了依赖项并在我的主类上添加了 @EnableFeignClients 注释。然而,当启动应用程序时,Spring 提示存在不满足的依赖关系,从具有注释 @FeignClient 的库生成的接口(interface)似乎没有被扫描或实例化。包含这样生成的 swagger 客户端库时是否需要进行任何特定配置?

最佳答案

我在同样的问题上挣扎了很长一段时间,我想分享一下我需要暂时解决这个问题的方法。默认情况下,swagger 将使用旧版 feign 客户端而不是新的 openfeign,因此您必须直接启用配置选项 generateForOpenFeign。另外,如果您想使用 java8,为了避免生成默认接口(interface)(不执行任何操作),您可以将配置选项 defaultInterfaces 设置为 false。

这是我的 swagger_config.json 的样子:

{
"artifactId": "example-sdk",
"artifactVersion": "1.0.0",
"groupId": "com.example",
"apiPackage": "com.example.api",
"modelPackage": "com.example.model",
"configPackage": "com.example.configuration",
"generateForOpenFeign": true,
"java8": true,
"defaultInterfaces": false
}

生成源文件后,我必须更新 pom.xmlspring-cloudspring-boot-starter 的依赖项,以使源代码可编译。

这是我更新的内容:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Greenwich.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

要使用生成的假客户端,我必须输入@EnableFeignClients(basePackages = {"com.example.api"}) 在我的客户端应用程序的主类中。我知道这不是最好的解决方案,如果有人有更好的想法,请提出建议。

关于java - 如何使用 Swagger 生成的客户端 (Feign),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52514482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com