Кажется, swagger по адресу https://docs.discourse.org/openapi.json невалиден.
Сценарий воспроизведения:
- Перейдите на https://editor.swagger.io/
- Нажмите File → Import URL.
- Введите URL.
Через несколько секунд возникает 142 ошибки валидации.
Не могу прикрепить файл, но ошибка похожа на:
Структурная ошибка в paths./categories.json.post.responses.200.content.application/json.schema.properties.category.properties.name.description
должно быть строкой
Перейти к строке 184
Структурная ошибка в paths./categories.json.post.responses.200.content.application/json.schema.properties.category.properties.color.description
должно быть строкой
Перейти к строке 187
Структурная ошибка в paths./categories.json.post.responses.200.content.application/json.schema.properties.category.properties.text_color.description
должно быть строкой
Перейти к строке 190
... ещё ...
Есть ли доступная альтернативная (валидная) спецификация swagger?
Предлагаемый патч
Ниже представлен предлагаемый патч на данный момент.
Сводка
diff --git "a/discourse-swagger-original.json" "b/discourse-swagger.json"
index f9267f5d0..dcebe3fd8 100644
--- "a/discourse-swagger-original.json"
+++ "b/discourse-swagger.json"
@@ -578,8 +578,8 @@
},
"available_groups": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -1196,8 +1196,8 @@
},
"actions_summary": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -1788,8 +1788,8 @@
},
"actions_summary": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -1885,8 +1885,8 @@
},
"stream": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -1899,14 +1899,14 @@
},
"timeline_lookup": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"properties": {
"0": {
"type": "array",
"uniqueItems": true,
- "minItems": null,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -3621,8 +3621,8 @@
"properties": {
"user_badges": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -3798,8 +3798,8 @@
},
"featured_user_badge_ids": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -3864,8 +3864,8 @@
"properties": {
"user_badges": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -4041,8 +4041,8 @@
},
"featured_user_badge_ids": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -4734,8 +4734,8 @@
},
"posters": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -4745,16 +4745,16 @@
},
"users": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
},
"categories": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -4773,24 +4773,24 @@
},
"post_ids": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
},
"user_ids": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
},
"category_ids": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -6406,8 +6406,8 @@
},
"owners": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
@@ -7241,8 +7241,8 @@
},
"choices": {
"type": "array",
- "uniqueItems": null,
- "minItems": null,
+ "uniqueItems": false,
+ "minItems": 0,
"items": {
"type": "object"
}
