進行中のベータリリース​: クラウド IDE は進行中のベータリリースです​。ベータ状態での Anypoint Code Builder の使用には、IDE で入手できる、該当するベータサービス契約条件が適用されます。

GraphQL 実装の応答の設定

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

フローごとに特定の応答を返すように GraphQL 実装を設定します。

始める前に

ロジックをフローに追加する

  1. Anypoint Code Builder で ​[Books Implementation (ブック実装)]​ プロジェクトを開きます。

  2. [Explorer] のプロジェクトディレクトリから ​flows.xml​ を開きます。

  3. Query.bookById​ フロー内で、​<graphql-router:data-fetcher/>​ 要素の後の ​Set Payload​ コンポーネントを次の Set Payload 設定で​置き換え​ます。

    <set-payload value='{"id": 1, "name": "My Book", "pageCount": 28, "author": "author-1"}' mimeType="application/json" />
    XML

    これで、​Query.bookById​ フローの XML に次の設定が割り当てられます。

    <flow name="Query.bookById">
      <graphql-router:data-fetcher xmlns:graphql-router="http://www.mulesoft.org/schema/mule/graphql-router" config-ref="api-router-config" objectTypeName="Query" fieldName="bookById"/>
      <set-payload value='{"id": 1, "name": "My Book", "pageCount": 28, "author": "author-1"}' mimeType="application/json" />
      <graphql-router:serialize xmlns:graphql-router="http://www.mulesoft.org/schema/mule/graphql-router" config-ref="api-router-config" objectTypeName="Query" fieldName="bookById"/>
    </flow>
    XML
  4. アクティビティバーの ​​ (​[Run and Debug (実行およびデバッグ)]​) アイコンをクリックし、​[Start Debugging (F5) (デバッグを開始 (F5))]​ アイコンをクリックして、アプリケーションを再ビルドします。

  5. IDE から、コンソールのターミナルウィンドウを開きます。

    • デスクトップ IDE で、​[View (表示)]​ > ​[Terminal (ターミナル)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[Terminal (ターミナル)]​ > ​[New Terminal (新規ターミナル)]​ を選択する。

    • いずれかの IDE で、Ctrl キーを押してからバッククォートキー (`) を押す。

      アプリケーションがすでに実行されている場合、​[Start New (新たに開始)]​ をクリックして、デバッグモードでアプリケーションを再実行します。

  6. コマンドプロンプトから次の ​curl​ コマンドを実行します。

    curl --request POST \
    --location 'http://localhost:8081/graphql' \
    --header 'Content-Type: application/json' \
    --data '{
        "query": "query bookById($id: ID) {bookById(id: $id){ id name pageCount author{ id firstName lastName}}}",
        "variables": {
            "id": 1
        }
    }'
    curl

    Anypoint Code Builder からターミナルに JSON 応答が返されます (読みやすくするために手動で再書式設定)。

    { "data": {
                "bookById": {
                              "id":"1",
                              "name":"My Book",
                              "pageCount":28,
                              "author": {
                                          "id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
                                          "firstName":"This is some example data",
                                          "lastName":"Hello World!"
                                        }
                            }
              }
    }
    JSON

bookById​ エンドポイントをテストしたら、残りのフローをテストするために Set Payload を使用してモック応答を追加できます。次に例を示します。