-
Notifications
You must be signed in to change notification settings - Fork 535
Open
Description
I have an OrderCreate
Schema that holds properties, one of this properties is an buggedProperty
which is of type array, this property holds a schema OrderItem
in Items that is not resolved. Is it normal behavior for items not to be resolved ?
Options Used:
ParseOptions options = new ParseOptions();
options.setResolve(true);
options.setResolveFully(true);
options.setInferSchemaType(true);
SwaggerParseResult result = new OpenAPIParser().readLocation(path, null, options);
Using the Following JSON :
{
"openapi": "3.1.0",
"info": {
"title": "test",
"description": "test desc",
"version": "1.0.0"
},
"servers": [
{
"url": "redacted",
"description": "desc"
}
],
"paths": {
"/orders": {
"post": {
"tags": [
"orders"
],
"summary": "Create Order",
"operationId": "create_order_orders_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrderCreate"
}
}
}
}
}
}
},
"components": {
"schemas": {
"OrderCreate": {
"properties": {
"delivery_address": {
"type": "string",
"title": "Delivery Address"
},
"phone_number": {
"type": "string",
"title": "Phone Number"
},
"buggedProperty": {
"items": {
"$ref": "#/components/schemas/OrderItem"
},
"type": "array",
"title": "Items",
"default": []
}
},
"type": "object",
"required": [
"delivery_address",
"phone_number"
],
"title": "OrderCreate"
},
"OrderItem": {
"properties": {
"menu_item_id": {
"type": "integer",
"title": "Menu Item Id"
},
"quantity": {
"type": "integer",
"title": "Quantity"
}
},
"type": "object",
"required": [
"menu_item_id",
"quantity"
],
"title": "OrderItem"
}
}
}
}
Result from:
Schema<?> scheme = ((Schema<?>) parsedAPI.getComponents().getSchemas().get("OrderCreate").getProperties().get("buggedProperty")).getItems();
Is:
class JsonSchema {
class Schema {
type: null
format: null
$ref: #/components/schemas/OrderItem
description: null
title: null
multipleOf: null
maximum: null
exclusiveMaximum: null
minimum: null
exclusiveMinimum: null
maxLength: null
minLength: null
pattern: null
maxItems: null
minItems: null
uniqueItems: null
maxProperties: null
minProperties: null
required: null
not: null
properties: null
additionalProperties: null
nullable: null
readOnly: null
writeOnly: null
example: null
externalDocs: null
deprecated: null
discriminator: null
xml: null
patternProperties: null
contains: null
$id: null
$anchor: null
$schema: null
$vocabulary: null
$dynamicAnchor: null
const: null
contentEncoding: null
contentMediaType: null
contentSchema: null
propertyNames: null
unevaluatedProperties: null
maxContains: null
minContains: null
additionalItems: null
unevaluatedItems: null
_if: null
_else: null
then: null
dependentRequired: null
dependentSchemas: null
$comment: null
prefixItems: null
}
}
Metadata
Metadata
Assignees
Labels
No labels