web-dev-qa-db-fra.com

Littéraux multi-lignes dans swagger editor?

J'essaie d'obtenir un littéral multiligne dans l'éditeur Swagger (un outil génial, au fait!).

  post:
    summary: Translate one or more identifiers
    description: |
Translate one or more identifiers for one entity into the
identifiers of another entity. Translate one or more
identifiers for one entity into the identifiers of another entity.

    consumes:
    - application/json

Je l'ai essayé avec | et>, avec des terminaisons différentes (retrait croissant par rapport à la ligne vide), et de toutes les façons possibles, mais cela donne toujours la même erreur:

YAML Syntax Error
Can not read a block mapping entry; a multiline key may not be an implicit  
key at line 24, column 15: consumes: ^

Je vois des bogues pour JS-YAML qui indiquent que le problème est un saut de ligne de style Windows à la fin, que je sais que les zones de texte HTML peuvent créer. C'est la première fois que j'utilise beaucoup YAML, alors est-ce juste que je fais quelque chose de mal ou qu'un bogue dans l'éditeur Swagger?

9
fool4jesus

Je crois que le problème est la façon dont vous avez commencé le texte sur votre bloc de description. Il doit être mis en retrait d'un niveau à droite de la description: voici un exemple de quelque chose qui fonctionne pour moi:

/{user-id}:
get:
  summary: Facebook User
  description: |
    Displays all information about a Facebook user, depending on access privileges.  Displays all information about a Facebook user, depending on access privileges.
  parameters:
    - name: user-id
      in: path
      description: The Facebook user ID
      required: true
      type: string

Dans mon code actuel, la description comporte trois lignes.

23
Mike Malloy

Je voulais ajouter l'approche JSON. J'utilise JSON pur dans l'éditeur Swagger pour éviter les problèmes de syntaxe double (apprentissage, débogage, analyse de documentation Web , etc.).

"get": {
    "description": "Hi\n\nThere",

Pour une raison quelconque, le double caractère de nouvelle ligne \n semblait être requis, du moins pour que la nouvelle ligne soit restituée dans l'éditeur Swagger. Toutefois, lorsque j'ai exporté l'API officielle Uber YAML demo en tant que JSON (Fichier -> Télécharger en tant que JSON), le JSON résultant ne comportait que des caractères de nouvelle ligne uniques illustrant les littéraux multilignes. Bizarre.

2
straville

C'est l'indentation. Cela devrait être comme:

  post:
    summary: Translate one or more identifiers
    description: |
      Translate one or more identifiers for one entity into the
      identifiers of another entity. Translate one or more
      identifiers for one entity into the identifiers of another entity.
0
bzon