Мы используем OpenAPI и openapi-generator-maven-plugin с Spring Boot. Мы пытаемся создать пример объекта в нашем ответе. Мы следовали рекомендациям ряда различных веб-страниц, особенно этой:
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\\"}\"");
В приведенном выше коде слишком много escape-символов, не должно быть двойных escape-символов.
Вот конфигурация плагина из нашего 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>
Мы перепробовали все различные комбинации цитирования и отступа, но безрезультатно. Пожалуйста, помогите нам!