OpenAPI 3.0 использует другой базовый URI для относительных URL в $ ref - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок в OpenAPI 3.0, поэтому дайте мне знать, если я использую плохие методы.

Контекст : я создаю приложение фляги с Connexion для обработки маршрутизации и проверки REST.Connexion загружает спецификацию OpenAPI и отображает методы обработчика.Я также отправил PR в Connexion, чтобы $ ref использовал локальные относительные пути к файлам.Connexion загружает спецификации очень хорошо.

Проблема : Моя проблема связана с самой спецификацией OpenAPI 3.0 .Мои файлы спецификаций находятся в каталоге /oas3/1.0beta/ и имеют относительные пути к файлам, но базовый URL-адрес сервера в спецификации /1.0beta/.В спецификации OpenAPI 3.0 указано :

Относительные ссылки разрешаются с использованием URL-адресов, определенных в объекте сервера в качестве базового URI.

Пример

/ oas3 / 1.0beta / spec.yaml:

openapi: 3.0.0
servers:
  - description: Foo
    url: https://foo.com/1.0beta/
info:
  title: The Foo API!
  version: "1.0beta"
paths:
  /bar:
    get:
      summary: Gets a bar.
      operationId: api_1_0beta.foo.bar_get
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: 'other_spec.yaml'

Я хочу, чтобы other_spec.yaml разрешил в /oas3/1.0beta/other_spec.yaml, но спецификацию OpenAPI (и, следовательно, инструменты чванства/ ui / etc) говорят, что он разрешается до /1.0beta/other_spec.yaml.

Есть ли способ / обходной путь для использования другого базового URI для относительных $ refs?Разумно ли хотеть разные пространства URL для путей API и относительных $ refs?

...