#python-3.x #swagger-ui
Вопрос:
Доступен ли в python какой-либо синтаксический анализатор для автоматизации анализа файла подписи swagger, как в редакторе swagger?
Мое досье на чванство:
{
"swagger": "2.0",
"info": {
"title": "Forum API",
"version": "7.0",
"description": "Description"
},
"schemes": [
"http",
"https"
],
"paths": {
"/auth/login": {
"post": {
"tags": [
"Authentication Service"
],
"summary": "Authenticates the logged in user",
"description": "",
"operationId": "login_1",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "body",
"name": "body",
"description": "UserLoginCredential model JSON",
"required": true,
"schema": {
"$ref": "#/definitions/getItemKey"
}
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/getItemKey"
}
}
}
}
},
"/auth/logout": {
"post": {
"tags": [
"Authentication Service"
],
"summary": "Ends the logged in user session",
"description": "",
"operationId": "logout_1",
"parameters": [],
"responses": {
"200": {
"description": "Logged Out"
},
"403": {
"description": "Forbidden"
}
}
}
},
"/do/some/work": {
"post": {
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/createUpdate_dscr_ctl_ind"
},
"examples": {
"application/json": { "ID": "20200214182800",
"Date": "Fri, 14 Feb 2020 18:28:05 GMT",
"dscr_ctl_ind": [
[ "dummy1", { "POSTED": true } ],
[ "dummy2", { "POSTED": true } ]
]
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/error-403-response"
},
"examples": {
"application/json": {
"errorType": "Authorization",
"errorMessage": "Invalid Access"
}
}
},
"400": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/error-response"
},
"examples": {
"application/json": {
"error":{
"code": "400",
"reason": "Syntax Error",
"message": "The HTTP request is corrupted or improperly formatted."
}
}
}
}
},
"summary": "createUpdate dataScreeningControl",
"operationId": "dataScreeningControl_1",
"description": "createUpdate ScreeningControl",
"tags": [
"dataScreeningControl"
],
"parameters": [
{
"in": "body",
"name": "body",
"required": true,
"schema": {
"$ref": "#/definitions/getItemKey"
}
}
]
}
},
"securityDefinitions": {
"Bearer": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
},
"definitions": {
"SecurityPolicy": {
"type": "object",
"required": [
"policyId"
],
"properties": {
"daysForDeleting": {
"type": "integer",
"format": "int64",
"description": "Days for deleting"
},
"minimumPasswordLength": {
"type": "integer",
"format": "int64",
"description": "Minimum password length"
},
"passwordRules": {
"type": "string",
"description": "password Rules"
},
"minimumUpperCaseLength": {
"type": "integer",
"format": "int64",
"description": "Minimum upper case length"
},
"minimumLowerCaseLength": {
"type": "integer",
"format": "int64",
"description": "Minimum lower case length"
},
"daysPasswordUsageDisallowed": {
"type": "integer",
"format": "int64",
"description": "Days password usage disallowed"
},
"recyclingPolicy": {
"type": "integer",
"format": "int64",
"description": "Recycling policy",
"enum": [
1,
2,
3
]
}
}
},
"userRolePolicy": {
"type": "object",
"required": [
"policyId"
],
"UserObject": {
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"description": "Unique Session Identifier"
},
"orgAccountId": {
"type": "integer",
"format": "int64",
"description": "Organization Account Identifier"
},
"accountId": {
"type": "integer",
"format": "int64",
"description": "Account number of user"
}
},
"description": "Logged in user Details"
},
"UserLoginCredential": {
"type": "object",
"required": [
"password",
"userName"
],
"properties": {
"userName": {
"type": "string",
"description": "Name of the user"
},
"password": {
"type": "string",
"description": "Password associated with the User"
}
},
"description": "UserLoginCredential Details"
},
"required": [
"ATTRIBUTES",
"npa"
]
},
"getItemKey": {
"type": "object",
"title": "getItemKey config",
"description": "getItemKey Config",
"properties": {
"ID": {
"type": "string",
"example": "20200214182800"
},
"Date": {
"type": "string",
"example": "Fri, 14 Feb 2020 18:28:05 GMT"
}
}
},
"getQuery_line": {
"type": "object",
"title": "getQuery Line Number Config",
"description": "getQuery Number Config",
"properties": {
"ID": {
"type": "string",
"example": "20200214182800"
},
"Date": {
"type": "string",
"example": "Fri, 14 Feb 2020 18:28:05 GMT"
},
"line": {
"type": "array",
"items":
{
"type": "string"
},
example:
[ "7815551212", "7815551111", "7815551225" ]
}
}
},
"error-403-response": {
"type": "object",
"title": "Error Response Details",
"description": "Error Response Details",
"properties": {
"errorType": {
"type": "string",
"description": "Text that explains the reason for error."
},
"errorMessage": {
"type": "string",
"description": "Text that provide more details and corrective actions related to the error"
}
},
"required": [
"errorType",
"errorMessage"
]
}
},
"tags": [
{
"name": "dataAuthentication"
},
{
"name": "dataScreeningProfile"
},
{
"name": "thresholdThr_Itvs"
},
{
"name": "calledNumberBlock"
}
],
"host": "www.telus.com"
}
Я хочу автоматизировать вышеуказанный файл swagger, чтобы проанализировать весь документ в какой-то файл и использовать его затем