本文介紹了更改Spring Openapi-Generator-maven-plugin生成的接口的返回類型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我已經設法從.yaml開放API描述符文件生成了接口,但是,正如問題標題中所述,我希望將這些接口的響應類型從ResponseEntity更改為我自己的類型?;旧喜皇蔷哂幸韵潞灻慕涌冢?/p>
ResponseEntity<Void> clearCache();
對于基本上是這樣實現的方法:
public void clearCache(){ //do something}
我希望生成的接口與
一樣簡單
void clearCache();
我自己定義的類也是這樣,而不是ResponseEntity<MyBook> getBook(String ISBN);
,我希望它只使用MyBook
作為返回類型,因此它應該類似于
我當前對Openapi生成器插件使用的設置是
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.3.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>my-own-service-be/src/main/resources/api-docs.yaml</inputSpec>
<generatorName>spring</generatorName>
<additionalProperties>
<additionalProperty>skipDefaultInterface=true</additionalProperty>
<additionalProperty>interfaceOnly=true</additionalProperty>
</additionalProperties>
<generateApis>true</generateApis>
<apiPackage>controller</apiPackage>
<supportingFilesToGenerate>false</supportingFilesToGenerate>
<modelPackage>dto</modelPackage>
<generateModelTests>false</generateModelTests>
<generateApiTests>false</generateApiTests>
</configuration>
</execution>
</executions>
</plugin>
推薦答案
我們最近遇到了類似的挑戰。您需要做的是調整模板。為此,您需要從您的生成器的OpenAPI項目中找到源代碼模板。對于您來說,這將是this api.mustache
file。
只需將其復制到您的src/main/resources/
文件夾(可能位于名為custom
的子文件夾中),并根據您的需要進行調整,即替換響應類型。
然后,您需要調整pom.xml
,以便實際使用您的自定義模板文件:
<configuration>
<!-- The following line is crucial: -->
<templateDirectory>${project.basedir}/src/main/resources/custom</templateDirectory>
<inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
<generatorName>spring</generatorName>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
有關該主題的更多信息,請參閱this templating documentation。
這篇關于更改Spring Openapi-Generator-maven-plugin生成的接口的返回類型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,