web-dev-qa-db-ja.com

Swaggerエディターの複数行リテラル?

Swaggerエディター(ちなみに素晴らしいツールです)で複数行リテラルを取得しようとしています。

  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

私はそれを試しました|と>、異なるエンディング(インデントと空行の増加)で、そして私が考えることができるあらゆる方法ですが、常に同じエラーが発生します。

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: ^

私は、問題が最後にWindowsスタイルの改行であることを示すJS-YAMLのバグを見つけました。HTMLのテキスト領域が作成できることがわかっています。これは私が実際にYAMLを頻繁に使用するのは初めてです。それで、私が何か間違ったことをしているのでしょうか、それともSwaggerエディターのバグですか?

12
fool4jesus

問題は、説明ブロックのテキストの書き方にあると思います。説明の右側に1レベルインデントする必要があります。これは、私にとって有効な例です。

/{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

実際のコードでは、説明は3行です。

31
Mike Malloy

JSONアプローチを追加したかった。 Swaggerエディターで純粋なJSONを使用して、二重構文の問題(学習、デバッグ、 web documentation などの解析)を回避しています。

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

何らかの理由で二重改行文字\nは、少なくとも新しい行がSwaggerエディターでレンダリングされるために必要であるように思われました。しかし、公式のUber API YAML demo をJSONとしてエクスポートした場合(ファイル-> JSONとしてダウンロード)、結果のJSONには単一の改行文字しかなく、複数行のリテラルが示されていました。変だ。

2
straville

インデントです。それは次のようになります:

  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.
1
john