apinf / openapi-designer

Design interface for creating Open API (Swagger) specification files
https://openapi.design
MIT License
69 stars 18 forks source link

Export spec should not contain `x-oad-type` attributes #350

Open brylie opened 6 years ago

brylie commented 6 years ago

When trying to import a spec file from OpenAPI Designer into the Swagger Editor, there are several validation errors. A common validation error is:

Sibling values are not allowed alongside $refs

This basically means that anywhere there is a $ref element, it cannot have any other elements in the same scope. See, for example:

startTime:
  // The x-oad-type invalidates the schema
  x-oad-type: reference
  $ref: '#/definitions/time'

Task

Make sure exported spec file does not contain x-oad-type attributes. Also, make sure exported spec file is valid - i.e. should not have any validation errors.

Yuman1 commented 5 years ago

Due to lines containing "x-oad-type", the exported spec is incompatible with editor.swagger.io. The following regex operation solves the problem one-way: replace{\n\s+"x-oad-type": "\w+".*\n}{\n}

The cleaned up spec cannot be imported back to openapi.designer.

brylie commented 5 years ago

We had the same problem with Swagger editor, which is why this issue exists. Please consider increasing the priority, so that output from OpenAPI Designer is compatible with Swagger Editor.

Yuman commented 5 years ago

A follow-up on a previous post, I have used this fix to bridge between openapi.designer and swagger editor both ways: replace{,?\n\s+"x-oad-type": "\w+".*\n}{\n} You can export to JSON, run the fix in a text editor, import to swagger, export from swagger, and import back into openapi.designer. That shows that x-oad-type is unnecessary even within oad. Removing it will make oad much more useful.