我们在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>
我们尝试了所有不同的引号和缩进组合,但无济于事。请帮助我们!