リクエストまたはレスポンスを部分的に再利用 - Cloud

Talend Cloud API Testerユーザーガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Talend API Tester
Content
ジョブデザインと開発 > Testing APIs
リポジトリーに保管されているすべてのリクエストは、式を通じてアクセスできるため、他のリクエストまたはアサーションでそのコンポーネントを再利用できます。

ユースケース:

ここで/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] (スターウォーズ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"}