リクエストボディの記述
POST、PUT、PATCH リクエストには、JSON や XML データなどのリクエストボディ(ペイロード)を含めることができます。Swagger の用語では、リクエストボディはボディパラメーターと呼ばれます。ボディパラメーターは 1 つしか指定できませんが、操作には他のパラメーター(パス、クエリ、ヘッダー)が含まれる場合があります。
注: application/x-www-form-urlencoded
および multipart/form-data
リクエストのペイロードは、ボディパラメーターではなく、フォームパラメーターを使用して記述されます。
ボディパラメーターは、操作のパラメーターセクションで定義され、以下を含みます。
in: body
- ボディのデータ型と構造を記述する
schema
。データ型は通常オブジェクトですが、プリミティブ(文字列や数値など)や配列も可能です。 - オプションの
description
。 - ペイロード名。必須ですが無視されます(ドキュメント目的でのみ使用されます)。
オブジェクトペイロード (JSONなど)
多くの API は、JSON などのオブジェクトとしてデータを送信します。schema
はオブジェクトの場合、type: object
とそのオブジェクトのプロパティを指定する必要があります。たとえば、この JSON ボディを持つ POST /users
操作は次のようになります。
1{2 "userName": "Trillian",3 "firstName": "Tricia",4 "lastName": "McMillan"5}
次のように記述できます。
1paths:2 /users:3 post:4 summary: Creates a new user.5 consumes:6 - application/json7 parameters:8 - in: body9 name: user10 description: The user to create.11 schema:12 type: object13 required:14 - userName15 properties:16 userName:17 type: string18 firstName:19 type: string20 lastName:21 type: string22 responses:23 201:24 description: Created
注: ボディパラメーターの名前は無視されます。ドキュメント目的でのみ使用されます。よりモジュール化されたスタイルにするには、スキーマ定義をグローバルな definitions
セクションに移動し、$ref
を使用してそれらを参照できます。
1paths:2 /users:3 post:4 summary: Creates a new user.5 consumes:6 - application/json7 parameters:8 - in: body9 name: user10 description: The user to create.11 schema:12 $ref: "#/definitions/User" # <----------13 responses:14 200:15 description: OK16definitions:17 User: # <----------18 type: object19 required:20 - userName21 properties:22 userName:23 type: string24 firstName:25 type: string26 lastName:27 type: string
プリミティブボディ
単一の値だけを POST/PUT したいですか?問題ありません。ボディスキーマの型を、文字列や数値などのプリミティブとして定義できます。生の要求
1POST /status HTTP/1.12Host: api.example.com3Content-Type: text/plain4Content-Length: 425
6Time is an illusion. Lunchtime doubly so.
Swagger の定義
1paths:2 /status:3 post:4 summary: Updates the status message.5 consumes:6 - text/plain # <----------7 parameters:8 - in: body9 name: status10 required: true11 schema:12 type: string # <----------13 responses:14 200:15 description: Success!
お探しのものが見つかりませんでしたか? コミュニティに質問する
間違いを見つけましたか? お知らせください