2017-07-12 1 views
1

J'utilise l'outil de conception API MuleSoft pour documenter mon APIRAML 1.0 n'obéit pas! Inclure dans les exemples dans responses.body

J'ai lu les spécifications RAML 1.0 et, d'après ce que je comprends, les deux les constructions suivantes devraient être légales, la seule différence étant dans la façon dont j'accède au json qui apparaît dans la section des exemples 401.

/password: 
    post: 
    description: Verifies the supplied user name and password, returning the associated Customer Id 
    body: 
     type: tokens.password-verification-request 
     example: !include examples/password-verification-request.json 
    responses: 
     200: 
     body: 
      application/json: 
      type: tokens.password-verification-response-success 
      example: !include examples/password-verification-response-200.json 
     401: 
     body: 
      application/json: 
      type: tokens.error-response 
      examples: 
       invalidcredentials: 
       value: | 
        { 
        "failure" : { 
         "errors" : [ { 
         "code" : "ID10050", 
         "desc" : "Invalid User Credentials supplied" 
         } ], 
         "trackingId" : "e6d370da-3978-4dde-9e50-d485023cd47a" 
        } 
        } 
       accountlocked: 
....... 

et

/password: 
    post: 
    description: Verifies the supplied user name and password, returning the associated Customer Id 
    body: 
     type: tokens.password-verification-request 
     example: !include examples/password-verification-request.json 
    responses: 
     200: 
     body: 
      application/json: 
      type: tokens.password-verification-response-success 
      example: !include examples/password-verification-response-200.json 
     401: 
     body: 
      application/json: 
      type: tokens.error-response 
      examples: 
       invalidcredentials: 
       value: !include examples/error.json 
       accountlocked: 
....... 

La seconde de ces deux exemples est signalé comme une erreur dans le concepteur, en disant qu'il ne peut pas trouver « l'échec ». Je suppose qu'il fait cela comme il essaie d'analyser le contenu du fichier error.json

Je suis convaincu que le fichier error.json existe et est au bon endroit. Je suis également heureux qu'il contienne le bon json (j'ai copié le json de ce dossier dans la propriété examples dans l'exemple 1 ci-dessus).

Est-ce que je fais quelque chose de mal dans le !include? Ai-je mal compris la spécification et la spécification ne le permet pas? L'outil de conception d'API est-il perturbé? !

Répondre

0

L'exemple comprennent ne peut pas être interne, un exemple JSON vous devez spécifier comme dans l'exemple 200 avec l'exemple complet:

401: 
    body: 
     application/json: 
     type: tokens.error-response 
     examples: 
     - !include examples/error_01.json 
     - !include examples/error_02.json 
+0

Mais comment Dois-je donner plus d'un exemple pour la réponse 401? – DaveH

+0

J'ai édité la réponse pour montrer comment utiliser plusieurs exemples! –

+0

Si j'essaie cette syntaxe, il me dit "les exemples devraient être une carte". – DaveH

0

La syntaxe réelle transpiré être:

401: 
    body: 
     application/json: 
     type: t.error-response 
     examples: 
      invalidcredentials: !include examples/errors/error-response-1.json 
      accountlocked: !include examples/errors/error-response-2.json 
      accountinactive: !include examples/errors/error-response-3.json