Skip to content

JSON schema's "allOf" results in no declared properties of a RAML type #24

Description

@deiteris

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"
            ],
           ...
          }
        ]
      }
    ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions