リクエストまたはレスポンスを部分的に再利用
リポジトリーに保管されているすべてのリクエストは、式を通じてアクセスできるため、他のリクエストまたはアサーションでそのコンポーネントを再利用できます。
ユースケース:
ここで/planetsリソースのCRUD(作成、読み取り、アップデート、削除)操作をテストしてみます。
/planetsにPOSTして惑星を作成する場合は、惑星が作成されていて利用可能であることを確認します。
以下を作成できます。
- 新しい惑星を投稿するリクエスト[Create planet] (惑星を作成)とプロジェクト[Star wars API] (スターウォーズAPI)のシナリオ[Creation scenario] (シナリオを作成)
- /planets/{planetId}で作成された惑星を取得する最初のリクエストのレスポンスから作成された新しい惑星のIDを取得する2番目のリクエスト[Verify planet existence] (惑星の存在を確認)。
最初のリクエストのレスポンスが以下のようになる場合:
{
"id": "9e5d2284-94ad-11e7-bbbc-773611cab8f7",
"name": "Tatooine",
"rotation_period": "23",
"orbital_period": "304",
"diameter": "10465",
"climate": "arid",
"gravity": "1 standard",
"terrain": "desert",
"population": "200000",
}
次に、https://my-star-wars-api.com/planets/${"Star wars API"."Creation scenario"."Create planet"."response"."body"."id"}でGETを作成し、たとえばレスポンスコードの200をアサートして惑星が作成されたことをテストできます。
使用できるエレメント
リクエストは以下のように構成されます。
{
{request name}: {string},
"request": {
"method" : {string},
"uri" : {string},
"headers" : {
{header name} : {header value}
},
"query" : {
{query parameter name} : {query parameter value}
},
"body" : {string or object}
},
"response": {
"headers" : {object},
"status" : {
"message" : {string},
"code" : {number}
}
"body" : {string or object}
}
}
レスポンスには、リクエストの最後のコールに対するHTTPレスポンスを表すJSONオブジェクトが含まれています。
標準のJavaScriptオブジェクトをクエリーするのと同じ方法で、ドット表記を使用してクエリーを実行できます。
情報メモ注: すべてのヘッダー名は小文字で、テキストボディのみ参照できます。
これは、Star-wars APIプロジェクトにあるGet planetsリクエストのエレメントを参照できることを意味します。
- リクエストURI: ${"Star-wars API"."Get planets"."request"."uri"}
- レスポンスステータスコード: ${"Star-wars API"."Get planets"."response"."status"."code"}
- Content-typeレスポンスヘッダーの値: ${"Star-wars API"."Get planets"."response"."headers"."Content-type"}
- レスポンスボディ属性id: ${"Star-wars API"."Get planets"."response"."body"."id"}