GraphQL API の実装

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

Anypoint Exchange に GraphQL API スキーマをパブリッシュします。次に、Anypoint Code Builder を使用して、スキーマを Mule アプリケーションにインポートしてスキャフォールディングします。インターフェースを実行して実装します。

始める前に

次の手順を実行します。

  • MuleSoft 環境をセットアップします。 詳細は、Anypoint Code Builder 入門を参照してください。

  • ブック API​ GraphQL スキーマ​をダウンロードします。

    または、次のコンテンツが含まれる ​books-api.graphql​ という名前のファイルを作成します。
    schema {
      query: Query
    }
    
    type Query {
      bookById(id: ID): Book
      books: [Book]
      bestsellers: Bestsellers
    }
    
    type Book {
      id: ID!
      name: String
      pageCount: Int
      author: Author
    }
    
    type Author {
      id: ID!
      firstName: String
      lastName: String
    }
    
    type Bestsellers {
      books: [Book]
      authors: [Author]
    }

GraphQL API を Exchange にパブリッシュする

GraphQL API を実装するには、まず GraphQL API を Exchange に手動でパブリッシュする必要があります。

  1. Anypoint Exchange に移動し、サインインします。

    手順を表示
  2. [Publish new asset (新規アセットをパブリッシュ)]​ をクリックします。

  3. [Name (名前)]​ に​「books-api」​と入力します。

  4. [Asset types (アセットタイプ)]​ では、​[GraphQL API]​ を選択します。

  5. [Method (方法)]​ では、​[Upload a GraphQL API Schema (GraphQL API スキーマをアップロード)]​ を選択します。

    upload graphql api exchange method select
  6. [File upload (ファイルアップロード)]​ では、​[Choose file (ファイルを選択)]​ をクリックして目的の ​books-api.graphql​ スキーマファイルを探します。

  7. [Lifecycle state (ライフサイクル状態)]​ では、​[Stable (安定)]​ を選択します。

  8. [Publish (パブリッシュ)]​ をクリックします。

GraphQL API スキーマを実装する

Anypoint Code Builder を使用して Anypoint Exchange のスキーマを取得し、デスクトップ IDE またはクラウド IDE から実装できるインターフェースにスキーマをスキャフォールディングします。

  1. Anypoint Code Builder を開きます。

  2. コマンドパレットを開きます。

    手順を表示
    • キーボードショートカットを使用する。

      • Mac: Cmd+Shift+p

      • Windows: Ctrl+Shift+p

    • デスクトップ IDE で、​[View (表示)]​ > ​[Command Palette (コマンドパレット)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[View (表示)]​ > ​[Command Palette (コマンドパレット)]​ を選択する。

  3. 次のコマンドを入力します。

    MuleSoft: Implement an API Specification
  4. Anypoint Platform にサインインするように求められたら、​[Allow (許可)]​ をクリックして、プロンプトに従ってサインインします。

  5. 次の値を使用してプロジェクトを設定します。

    implement api configure in task
    1. Project Name (プロジェクト名)​: books-implementation

    2. [Project Location (プロジェクトの場所)]​: [Browse (参照)]​ をクリックしてホームディレクトリを選択します。

    3. Exchange で​「books」​と入力して Return キーを押し、​books-api​ 仕様を検索して結果を表示します。

    4. 検索結果で ​books-api​ の上にマウスポインターを置き、表示される ​[Add Asset (アセットを追加)]​ ボタンをクリックします。

      select books graphql api
    5. Mule Runtime​ および ​Java​ バージョンを入力します。

  6. [Create Project (プロジェクトを作成)]​ をクリックします。

  7. 確認を促されたら、API 仕様の作成者を信頼します。

    信頼しないと、IDE からプロジェクトの作業を行うことができません。

    作成者を信頼すると、Anypoint Code Builder では GraphQL API をスキャフォールディングし、ブック API GraphQL スキーマ内のタイプごとに空のフローでプロジェクトを作成します。

    GraphQL スキーマ Mule フロー
    type Query {
      bookById(id: ID): Book
      books: [Book]
      bestsellers: Bestsellers
    }
    
    type Book {
      id: ID!
      name: String
      pageCount: Int
      author: Author
    }
    
    type Author {
      id: ID!
      firstName: String
      lastName: String
    }
    
    type Bestsellers {
      books: [Book]
      authors: [Author]
    }
    <flow name="Query.bookById"/>
    <flow name="Query.books"/>
    <flow name="Query.bestsellers"/>
    <flow name="Book.author"/>
    <flow name="Bestsellers.books"/>
    <flow name="Bestsellers.authors"/>

    各フローには、​<graphql-router:data-fetcher/>​、​<set-payload/>​、​<graphql-router:serialize/>​ 要素の設定が含まれます。 <graphql-router:data-fetcher>​ 要素は、フローのトリガーとして機能します。データフェッチャーについての詳細は、データソースへの GraphQL API のマッピングを参照してください。

  8. GraphQL プロジェクトをテストするに進み、Anypoint Code Builder でアプリケーションを実行して、GraphQL クエリをエンドポイントに投稿します。