如何在 Open API 自动生成的 RestTemplate 中设置超时

问题描述 投票:0回答:1

使用:

  • Spring Boot v2.7.4
  • 开放API 3.0.3
  • org.openapitools.openapi-generator-maven-plugin v5.4.0

通过此配置,我将生成一个客户端来访问 Rest API。

我正在尝试为自动生成的 RestTemplate 设置自定义超时。我没有找到任何包含详细规范的文档。

这是配置 Maven 插件的地方:

<plugins>
    <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>${openapi-generator.version}</version>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <skipIfSpecIsUnchanged>true</skipIfSpecIsUnchanged>
                    <inputSpec>openapi/ability-api.yml</inputSpec>
                    <generatorName>java</generatorName>
                    <library>resttemplate</library>
                    <apiPackage>com.my-org.api</apiPackage>
                    <modelPackage>com.my-org.api.dto</modelPackage>
                    <modelNameSuffix>DTO</modelNameSuffix>
                    <generateApis>true</generateApis>
                    <generateApiDocumentation>false</generateApiDocumentation>
                    <generateApiTests>false</generateApiTests>
                    <generateModels>true</generateModels>
                    <generateModelDocumentation>false</generateModelDocumentation>
                    <generateModelTests>false</generateModelTests>
                    <generateSupportingFiles>true</generateSupportingFiles>
                    <configOptions>
                        <java8>true</java8>
                        <dateLibrary>java8</dateLibrary>
                        <useTags>true</useTags>
                        <oas3>true</oas3>
                        <useAbstractionForFiles>true</useAbstractionForFiles>
                    </configOptions>
                </configuration>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>com.my-org</groupId>
                <artifactId>my-artifact-id</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </plugin>
</plugins>

我在哪里可以找到如何操作?

java spring-boot maven openapi openapi-generator-maven-plugin
1个回答
0
投票

您可以创建自定义的

RestTemplate
并将其传递给
ApiClient
实例。

int timeout = 2000;
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setReadTimeout(timeout);
RestTemplate restTemplate new RestTemplate(factory);

MyRestApi api = new MyRestApi();
api.setApiClient(new ApiClient(restTemplate));

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.