Источник Openapi-генератора: Как заменить @RequestMapping ("$ {openapi.someproject.base-path: / v1}") - PullRequest
0 голосов
/ 21 ноября 2018

Я импортирую файл jar, содержащий RestResources, сгенерированные с помощью openapi-codegen.

@Controller
@RequestMapping({"${openapi.someproject.base-path:/v1}"}) // <-- ${openapi.someproject.base-path:/v1} should be replaced by /v1
public class ApiApiController implements ApiApi {
private final ApiApiDelegate delegate;

public ApiApiController(@Autowired(required = false) ApiApiDelegate delegate) {
    this.delegate = (ApiApiDelegate)Optional.ofNullable(delegate).orElse(new ApiApiDelegate() {
    });
}

public ApiApiDelegate getDelegate() {
    return this.delegate;
}
}

При развертывании моего приложения вижу конечную точку с именем "$ {openapi.someproject.base-path: / v1}».Как я могу настроить это, чтобы быть "/v1".

Я попытался поместить следующий application.yml из проекта, использующего:

openapi:
  someproject:
    base-path: ""

Импортированный JAR был создан следующим образом смодуль openapi-generator-maven-plugin:

                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>back-end-swagger</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>${project.basedir}/src/main/resources/swagger/api.yml</inputSpec>
                            <generatorName>spring</generatorName>
                            <apiPackage>com.test.api</apiPackage>
                            <modelPackage>com.test.api.model</modelPackage>                                <supportingFilesToGenerate>ApiUtil.java</supportingFilesToGenerate>
                            <validateSpec>true</validateSpec>
                            <configOptions>
                                <delegatePattern>true</delegatePattern>
                            </configOptions>
                        </configuration>
                    </execution>

Файл api.yml выглядит следующим образом:

swagger: "2.0"
info:
  version: "1.0.0"
  title: "someproject"
host: "somehost.io"
basePath: "/v1"
tags:
- name: "endpoint"
schemes:
- "https"
- "http"
paths:
  /api/test:
    get:
      produces:
      - "application/json"
      responses:
        200:
          description: OK
...