Я пытаюсь разбить документ API на несколько файлов JSON, которые можно редактировать независимо. Все примеры, которые я смог найти, используют схему Swagger 1.2, у которой есть объект «api»: {} для его разбивки. Кажется, что отсутствует в схеме 2.0 (http://json.schemastore.org/swagger-2.0). Все, что определяет, представляет собой единственный массив «пути», в котором он объединяет все конечные точки API в этот единственный массив. Эффект этого в swagger-ui есть одна категория «по умолчанию», в которую все входит в комплект, и я не могу сказать, чтобы разделить его.Как разбить swagger 2.0 JSON-файл на несколько модулей
TLDR: Как вы разделяете операции из путей в развязность 2.0 схеме
{
"swagger": "2.0",
"info": {
"description": "My API",
"version": "1.0.0",
"title": "My API",
"termsOfService": "http://www.domain.com",
"contact": {
"name": "[email protected]"
}
},
"basePath": "/",
"schemes": [
"http"
],
"paths": {
"Authorization/LoginAPI": {
"post": {
"summary": "Authenticates you to the system and produces a session token that will be used for future calls",
"description": "",
"operationId": "LoginAPI",
"consumes": [
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [{
"in": "formData",
"name": "UserName",
"description": "Login Username",
"required": true,
"type": "string"
}, {
"in": "formData",
"name": "Password",
"description": "Password",
"required": true,
"type": "string"
}],
"responses": {
"200": {
"description": "API Response with session ID if login is allowed",
"schema": {
"$ref": "#/definitions/Authorization"
}
}
}
}
}
}
}
Так что, если бы я хотел иметь отдельные файлы для каждого тега, возможно ли это? Я могу представить, что все ресурсы (например) можно добавить в отдельный файл, используя $ ref, но как бы вы разделили массив «пути»? –
Вы не можете этого сделать. Опять же, решения для микро-сервисов скоро появятся, но это не обязательно означает, что тег == micro-service. – Ron
Вы можете определить пути и модели в разных файлах? Пример этого в swagger 2.0? – lostintranslation