When a JSON schema object combines two properties using allOf, the API console doesn't show any declared properties of the type.
The following RAML reproduces the issue:
#%RAML 1.0
title: Example API
version: v1
mediaType:
- application/json
types:
allOfSchema: |
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"allOf": [
{
"properties": {
"original": {
"description": "Original property",
"type": "string"
}
}
},
{
"properties": {
"extension": {
"description": "Extension property",
"type": "string"
}
}
}
]
}
/example:
get:
body:
type: allOfSchema
example: |
{
"extension": ""
}
And results in the following graph: https://pastebin.com/Eysrm4S1
I assume this happens because shacl:and is not taken into account, while shacl:property is empty in this case.
{
...
"doc:declares": [
{
"@id": "#1",
"@type": [
"shacl:NodeShape",
"raml-shapes:AnyShape",
"shacl:Shape",
"raml-shapes:Shape",
"doc:DomainElement"
],
"shacl:closed": [
{
"@value": false
}
],
"shacl:property": [],
"shacl:name": [
{
"@value": "allOfSchema"
}
],
"shacl:and": [
{
"@id": "#2",
"@type": [
"shacl:NodeShape",
"raml-shapes:AnyShape",
"shacl:Shape",
"raml-shapes:Shape",
"doc:DomainElement"
],
...
}
]
}
]
}
When a JSON schema object combines two properties using
allOf, the API console doesn't show any declared properties of the type.The following RAML reproduces the issue:
And results in the following graph: https://pastebin.com/Eysrm4S1
I assume this happens because
shacl:andis not taken into account, whileshacl:propertyis empty in this case.{ ... "doc:declares": [ { "@id": "#1", "@type": [ "shacl:NodeShape", "raml-shapes:AnyShape", "shacl:Shape", "raml-shapes:Shape", "doc:DomainElement" ], "shacl:closed": [ { "@value": false } ], "shacl:property": [], "shacl:name": [ { "@value": "allOfSchema" } ], "shacl:and": [ { "@id": "#2", "@type": [ "shacl:NodeShape", "raml-shapes:AnyShape", "shacl:Shape", "raml-shapes:Shape", "doc:DomainElement" ], ... } ] } ] }