Swagger 2.0: Welches Schema soll ein (komplexer) JSON-Wert akzeptieren?

Die API, für die ich eine Swagger 2.0-Spezifikation schreibe, ist im Grunde ein Speicher für jeden JSON-Wert.

Ich möchte einen Pfad zum Lesen von Werten und einen Pfad zum Speichern von JSON-Werten (Null, Zahl, Ganzzahl, Zeichenfolge, Objekt, Array) mit nicht vordefinierter Tiefe.

Leider scheint es, dass Swagger 2.0 bei den Ein- und Ausgabeschemata ziemlich streng ist und nicht alle von JSON Schema zugelassenen Schemas zulässt. Der Swagger-Editor erlaubt zum Beispiel keine gemischten Werte (zum Beispiel eine Eigenschaft, die entweder ein Boolescher oder ein ganzzahliger Wert sein kann) oder lose definierte Arrays (der Elementtyp muss streng definiert sein) und Objekte.

So versuche ich eine Problemumgehung, indem ich ein @ definieMixedValue schema:

---
swagger: '2.0'
info:
  version: 0.0.1
  title: Data store API
consumes:
- application/json
produces:
- application/json
paths:
  /attributes/{attrId}/value:
    parameters:
    - name: attrId
      in: path
      type: string
      required: true
    get:
      responses:
        '200':
          description: Successful.
          schema:
            $ref: '#/definitions/MixedValue'
    put:
      parameters:
      - name: value
        in: body
        required: true
        schema:
          $ref: '#/definitions/MixedValue'
      responses:
      responses:
        '201':
          description: Successful.
definitions:
  MixedValue:
    type: object
    properties:
      type:
        type: string
        enum:
        - 'null'
        - boolean
        - number
        - integer
        - string
        - object
        - array
      boolean:
        type: boolean
      number:
        type: number
      integer:
        type: integer
      string:
        type: string
      object:
        description: deep JSON object
        type: object
        additionalProperties: true
      array:
        description: deep JSON array
        type: array
    required:
    - type

Aber der Swagger Editor lehnt das lose definierteobject undarray Eigenschaften

Fragen: - Gibt es eine Möglichkeit, dieses Problem zu umgehen? - Handelt es sich nur um einen Swagger Editor-Fehler oder um ein starkes Limit der Swagger 2.0-Spezifikation? - Gibt es eine bessere Methode (Best Practice), um anzugeben, was ich brauche? - Kann ich mit Einschränkungen bei Code rechnen, der von swagger für einige Sprachen mit meiner API-Spezifikation erstellt wurde?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage