Я хочу проанализировать файл swagger v2.0
Я могу выполнить синтаксический анализ, отличный от типа allOf.
publi c SwaggerResponseImpl (Ответный ответ, SwaggerMimeType mimeType, int httpStatus , Swagger mSwagger) {
if (response == null || mimeType == null || mSwagger == null) {
String msg = "Arguments must be available. response:[" + response + "] and/or mimeType:[" + mimeType + "] and/or httpStatus:[" + httpStatus + "] and/or mSwagger:[" + mSwagger + "] aren't available.";
log.error(msg);
throw new SwaggerException(msg);
}
this.mimeType = mimeType;
this.response = response;
this.mSwagger = mSwagger;
this.httpStatus = httpStatus;
/**
* Create instance of 'Model Parser Factory'
*/
modelParserFactory = new ModelParserFactoryImpl();
/**
* If the 'Response' has an 'example body' or 'body schema'
* get it.
*/
if (response.getExamples() != null && response.getExamples().containsKey(this.mimeType.getMimeType())) {
/**
* This response has an example for the 'given MimeType'.
* Parse it.
*/
Object example = response.getExamples().get(this.mimeType.getMimeType());
this.bodyExample = parseExample(example, this.mimeType);
}
/**
* Get the 'schema' for the 'response'
*/
this.schema = response.getSchema();
DEFAULT_RESPONSE_HEADERS.put(ACCESS_CONTROL_HEADER, "*");
DEFAULT_RESPONSE_HEADERS.put(CACHE_CONTROL_HEADER, "public, max-age=36000");
DEFAULT_RESPONSE_HEADERS.put(CONNECTION_HEADER, "keep-alive");
DEFAULT_RESPONSE_HEADERS.put(CONTENT_TYPE_HEADER, mimeType.getMimeType());
}
Здесь, в this.schema Я получаю UntypedProperty
Таким образом, я не вижу, что этот ответ анализируется, и он показывает неполный.
Просто я прикрепляю раздел неполных ответов
"responses": {
"200": {
"description": "Successful",
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"payments": {
"type": "object",
"properties": {
"cardProcessing": {
"type": "object",
"properties": {
"subscriptionInformation": {
"type": "object",
"properties": {
"subscribed": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"features": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
}
},
"configurationInformation": {
"type": "object",
"properties": {
"configurations": {
"type": "object",
"properties": {
"common": {
"type": "object",
"properties": {
"processors": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"batchGroup": {
"type": "string"
},
Но в случае типа объекта этот ответ
"400": {
"description": "Invalid Request",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the submitted transaction.",
"enum": [
"INVALID_REQUEST"
]
},
"message": {
"type": "string",
"description": "The detail message related to the status and reason listed above."
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "This is the flattened JSON object field name/path that is either missing or invalid."
},
"reason": {
"type": "string",
"description": "Possible reasons for the error.",
"enum": [
для вышеуказанного ответа 400
тип схемы ObjectProperty
И он содержит правильный ответ в свойствах как вы можете видеть статус, сообщение, подробности
Что нужно сделать для разрешения типа allOf , чтобы он также рассматривался как ObjectProperty и я мог получить правильный ответ при разборе файла swagger 2.0.
Я использую io.swagger: swagger-models: 1.5 .20
Если я использую онлайн-редактор swagger, то он прекрасно работает, но с кодом java нет.