我们在 Spring Boot 中使用 OpenAPI 和 openapi-generator-maven-plugin。我们正在尝试在我们的响应中创建一个示例对象。我们遵循了许多不同网页的建议,尤其是这个:
https://swagger.io/docs/specification/adding-examples/
但是无论我们尝试什么,我们要么无法显示示例数据,要么它给我们一个编译错误。
例如,这似乎是我们应该使用的,从我们看到的文档中:
patch:
tags:
- Color
operationId: testing
description: test
responses:
'200':
description: Return existing colors in a season
content:
application/json:
schema:
type: object
properties:
testName:
type: string
example:
testname: amy
但这会在生成的 API 代码中导致编译错误:
ApiUtil.setExampleResponse(request, "application/json", "\"{\\"testname\\":\\"amy\\"}\"");
上面的代码中转义字符太多,不应该有双重转义。
这是来自我们 POM 的插件配置:
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<id>FlexPLM-ACL</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/apis/flexplm-acl.yml</inputSpec>
<generatorName>spring</generatorName>
<apiPackage>com.dcsg.pdcomm.flexplmacl.api</apiPackage>
<!-- Both of these APIs use the exact same DTOs, so we have put them into the same package -->
<modelPackage>com.dcsg.pdcomm.flexplm.dto</modelPackage>
<modelNameSuffix>DTO</modelNameSuffix>
<supportingFilesToGenerate>ApiUtil.java</supportingFilesToGenerate>
<configOptions>
<library>spring-boot</library>
<dateLibrary>java8</dateLibrary>
<java8>true</java8>
<interfaceOnly>true</interfaceOnly>
</configOptions>
<output>${project.build.directory}/generated-sources</output>
</configuration>
</execution>
</executions>
</plugin>
我们尝试了所有不同的引用和缩进组合,但无济于事。请帮助我们!