Graph API を使用した検索

Exchange Graph API では、Exchange アセットの文字列値を検索できます。各検索で返される値を 指定できます。

Graph API は Anypoint Exchange と Anypoint Platform にアクセスするため、 非公開 Exchange でアセットにアクセスする場合、照会にアクセストークンが必要です。MuleSoft 公開アセットのみを検索する場合、アクセストークンは必要ありません。

注意:

  • Exchange Graph API は Anypoint Platform アカウントなしで使用可能。その場合、MuleSoft によって一般公開されたアセットのみが返されます。

  • この API を利用して非公開コンテンツにアクセスするには、Anypoint Platform アカウントでプロビジョニングされている必要がある。

アクセストークンを取得する

アクセストークンは、MuleSoft によって作成されていないアセットを検索する場合にのみ必要です。

アクセストークンの有効期限は 15 ~ 180 分です (組織のシステム管理者にお問い合わせください)。そのため、検索中に新しいトークンの取得が必要になる場合があります。

  1. Anypoint Platform にログインします。

  2. 次のような curl コマンドでアクセストークンを取得します。Postman や別のアプリケーションを使用して HTTP コマンドを送信することもできます。

    curl -X POST \
      https://anypoint.mulesoft.com/accounts/login \
      -H 'content-type: application/json' \
      -d '{
      "username": "YOUR_ANYPOINT_PLATFORM_USER_NAME",
      "password": "YOUR_ANYPOINT_PLATFORM_PASSWORD"
    }'

Graph API のアクセス URL

Graph API には ​https://anypoint.mulesoft.com/graph/api/v1/graphql​ URLでアクセスできます。API を使用して 検索するには、検索文字列を含む POST コマンドを送信します。

例:

curl -X POST \
  https://anypoint.mulesoft.com/graph/api/v1/graphql \
  -H 'content-type: application/json' \
  -d '{"query": "{ assets(query: { searchTerm: \"searchTerm\" }) { groupId, assetId, version } }"}'

クエリ項目には、より多くのアセット項目を取得できる GraphQL クエリが含まれています。

{
  assets(asset: {groupId: "some-group-id", assetId: "some-asset-id", version: "some-version-1.2.3"}) {
    # Possible fields to retrieve
    groupId
    assetId
    version
    description
    name
    type
    tags {
      value
      key
    }
    createdBy {
      id
      userName
      firstName
      lastName
    }
    files {
      classifier
      packaging
      externalLink
      md5
    }
    rating
    numberOfRates
    createdAt
    organizationId
    assetLink
    runtimeVersion
    productAPIVersion
    dependencies {
      groupId
      assetId
      version
      name
      type
    }
    related(relationshipType: OtherVersions) {
      groupId
      assetId
      version
      name
      type
      runtimeVersion
      productAPIVersion
    }
  }
}

次の例では、Mule 4.x アセットのグループ ID、アセット ID、およびバージョンを取得できます。

curl -X POST \
  https://anypoint.mulesoft.com/graph/api/v1/graphql \
  -H 'content-type: application/json' \
  -d '{"query":"{assets(query: {tags: {key: \"min-mule-version\", value: \"4.0.0\"}}) {groupId assetId version}}"}'

非公開 Exchange のみを検索する

  1. 非公開 Exchange でアセットをクリックして、非公開 Exchange の組織 ID を取得します。

    URL の例を次に示します。

    https://anypoint.mulesoft.com/exchange/42424242/product-api/1.0.0/

    42424242​ が組織 ID です。

  2. organizationIds 項目を使用して、組織 ID を追加します。

    単一の組織 ID は次のようになります。

    organizationIds: ["42424242"]

    {
      assets(
        query: {
          searchTerm: "product",
          organizationIds: ["4141141", "32322", "2342345"]
        },
        latestVersionsOnly: true
      ) {
        assetId,
        description
      }
    }

    この例の出力は次のようになります。

    {
      "data": {
        "assets": [
          {
            "assetId": "product-datatype",
            "description": "Product Datatype Asset"
          },
          {
            "assetId": "product-api",
            "description": "Product API Asset"
          }
        ]
      }
    }

リファレンス: クエリ検索条件パラメータ

各アセットに関する追加情報を表示する検索条件を指定できます。

次の検索条件で、クエリ出力を絞り込むことができます。

パラメータ 説明

assetId

各アセットのアセット ID。

createdAt

アセットの作成日時 (例: 2018-08-11T04:48:20.585Z)。

createdBy ​{ id, userName, firstName, lastName }​

アセットの作成者を表示します。

dependencies ​{ groupId, assetId, version, name, type }​

リストされたアセットが依存するアセットを返します。

files ​{ classifier, packaging, externalLink, md5 }​

ファイル情報。

name

アセット名。

numberOfRates

アセットの星による評価の数。

organizationId

アセットの組織 ID。

rating

アセットの星による評価の値。

runtimeVersion

Mule Runtime バージョン。

tags ​{ value, key, mutable }​

アセットタグ。ユーザインターフェースでパブリッシュ時に作成されたタグは、​value​ タグのみになります (キーはありません)。ユーザインターフェースで作成されたタグは変更可能で、その他のタグは変更できません。キーと値のあるタグは、アセットを説明するために Exchange によって作成された特別なタグです。

type

Exchange の [All Types (すべてのタイプ)] メニューに対応する小文字の connector、template、example、rest-api、soap-api、raml-fragment、custom の値。

version

アセットのバージョン

groupId

アセットのグループ ID。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub