gpt4 book ai didi

java - Swagger codegen 生成重复的变量

转载 作者:行者123 更新时间:2023-12-02 08:55:39 29 4
gpt4 key购买 nike

我正在尝试从包含的 yaml 生成客户端

  acceptParam:
name: Accept
type: string
required: true
in: header
description: Accepted Content-type. Should be set to application/json
contentTypeParam:
name: Content-Type
type: string
required: true
in: header
description: Request Content-type. Should be set to application/json

这意味着,acceptcontentType 将出现在生成的方法签名中。

最重要的是,我配置了这样的插件

<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.18</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/swagger.yaml</inputSpec>
<language>java</language>
<configOptions>
<dateLibrary>joda</dateLibrary>
<localVarPrefix>localVar</localVarPrefix>
</configOptions>
<library>resttemplate</library>
<output>${project.build.directory}/generated-sources</output>
<modelPackage>com.example.client.model</modelPackage>
<apiPackage>com.example.client.api</apiPackage>
<generateApiTests>false</generateApiTests>
<generateModelTests>false</generateModelTests>
</configuration>
</execution>
</executions>
</plugin>

仍然,在mvn clean install之后

我懂了

Error:(130,31) java: variable accept is already defined in method

生成的代码包含

public Response authorize(Request body, String accept, ...) {
....
final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
....
}

我尝试了不同版本的插件(从2.3.0到最新版本),在克服了许多其他问题后,我总是以这样的方式结束。

最佳答案

有点晚了,但我在使用第 3 方 API 时遇到了同样的问题,这是搜索中出现的第一个问题。 openapi yaml 在我的情况下似乎是有效的,并且由于它是第 3 方,因此更改它无论如何都是不可行的。我必须使用 localVariablePrefix (变量完全拼写出来)。

因此要修改您的 pom.xml:

<configOptions>
<dateLibrary>joda</dateLibrary>
<localVariablePrefix>localVar</localVariablePrefix>
</configOptions>
...

关于java - Swagger codegen 生成重复的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60506131/

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