Я новичок в 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?