У меня проблема с использованием open api v3 $ ref для вызова URL
Я написал спецификацию open api v3, чтобы получить документацию для приложения REST. Я использую $ ref для проверки входных параметров этой документации. Эти $ refs указывают на схему json в URL.
Это пример документации apen api:
(doc.yml)
/myapi:
get:
description: Some Description
parameters:
- name: profile
in: query
description: Some description
required: false
schema:
$ref: 'http://localhost:8089/refs#/properties/profile'
конечная точка http://localhost:8089/refs#/properties/profile возвращает
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Some Example",
"definitions": {},
"properties": {
"profile": {
"default": "",
"examples": [
"1.0.0"
],
"pattern": "^(\\d+\\.\\d+\\.\\d+)$",
"type": "string",
"title": "This is a version",
"$id": "#/properties/profile"
}
},
"$id": "myid1"
}
Я скопировал и вставил doc.yml в swagger, и вход проверен, и все работает отлично.
Из-за изменений вконечная точка (http://localhost:8089/refs)
Я получаю этот ответ:
"oneOf": [
{
"$ref": "id1"
}
],
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Some Description",
"type": "object",
"$id": "someid",
"definitions": {
"id1": {
"description": "Some description",
"additionalProperties": false,
"type": "object",
"title": "Some Example",
"properties": {
"profile": {
"default": "",
"examples": [
"1.0.0"
],
"pattern": "^(\\d+\\.\\d+\\.\\d+)$",
"type": "string",
"title": "The Version Schema",
"$id": "#/properties/profile"
}
},
"$id": "id1"
}
}
}
После этого изменения Swagger выдает эту ошибку.
"Не удалось разрешить указатель # /properties / profile "
Мои вопросы. Можно ли продолжать использовать # / properties / profile в качестве идентификатора, когда схема использует oneOf? Как я могу сделать open api для проверки ввода, если схема jsonиспользуя oneOf? Нужно ли использовать другой путь, а не # / properties / profile?