2017-02-28 1 views
0

J'essaie d'utiliser swagger pour décrire un api de repos que j'ai ajouté à du code.Comment puis-je décrire ce modèle json complexe dans swagger

Ceci est l'un de mes simples retours.

J'ai vu quelques bons exemples mais je n'ai pas eu de chance en essayant de comprendre comment l'appliquer à mon problème.

Les différents appels d'API contiendront un contenu différent.

Si je sais à quoi cet objet devrait ressembler, je devrais être capable de comprendre les autres.

Quelqu'un peut-il me dire à quoi cette description devrait ressembler?

{  
    "result" : { 
     "content" : { 
     "UNTAINTED_HOST" : "www.google.com", 
     "DATA" : [ 
      "216.58.217.36" 
     ], 
     "IP_or_NAME" : "NAME", 
     "RC" : "true", 
     "FAULT_MSG" : "No Faults" 
     }, 
     "detail" : "Sucessfully terminated your request", 
     "short" : "Done" } 
} 

Ou encore ce plus simple:

{ 
    "result" : { 
     "short" : "Done", 
     "detail" : "Sucessfully terminated your request", 
     "content" : "Running" 
    } 
} 

pense que ce serait ressembler à -

{ 
    "definitions": { 
    "result": { 
     "type": "object", 
     "required": [ 
     "short", "detail", "content" 
     ], 
     "properties": { 
     "type": "array", 
     "items": { 
      "type": "object", 
      "properties": { 
        "content": { 
         "type": "string" 
        }, 
        "detail": { 
         "type": "string" 
        }, 
        "short": { 
         "type": "string" 
        }, 
      } 
     } 
     } 
    } 
    } 
} 

Essayé ceci dans l'éditeur de fanfaronnades ... semble avoir manqué quelque chose.

definitions: 
    results: 
    type: object 
    required: [ result ] 
    properties: 
     result: 
     type: array 
     items: 
      $ref: #/definitions/result 

    result: 
    type: object 
    properties: 
     short: 
     type: string 
     detail: 
     type: string 
     content: 
     type: string 

Cela a semblé fonctionner:

results: 
    type: object 
    required: [ result ] 
    properties: 
     result: 
     type: array 
     items: 
      type: object 
      required: [ short, detail, content ] 
      properties: 
      short: 
       type: string 
      detail: 
       type: string 
      content: 
       type: string 

Merci

+0

Comparez http://editor.swagger.io/#!/ avec le vôtre. Il y a quelques éléments de niveau supérieur, il semble que vous êtes manquant. Si vous laissez tomber votre spécification dans l'éditeur, vous les remarquerez rapidement: par exemple, chemins manquants, informations, swagger – bitsoflogic

Répondre

0

Cela a fonctionné pour moi:

definitions: 
    result: 
    type: object 
    properties: 
     short: 
     type: string 
     detail: 
     type: string 
     content: 
     type: string 

    results: 
    type: object 
    required: [result] 
    properties: 
     result: 
     type: array 
     items: 
      $ref: '#/definitions/result' 

Notez les guillemets simples autour de la valeur de $ref. Je n'ai pas vu ceux-ci dans votre message original. Cependant, vous n'avez pas mentionné l'erreur que vous voyez. Si cette réponse ne vous aide pas, veuillez mettre à jour votre question avec plus de détails.