---
schema_version: "1"
id: 45fa2cb2acfff91c9094255b343b6a5d40d3f1764f5dfb1ca951a1516301ed1b
title: Graph API を使用した検索
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/exchange/to-search-with-graph-api.md
canonical_url: https://docs.mulesoft.com/jp/exchange/to-search-with-graph-api
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 13a5c18c35a9076a6f3fb4e2655612322021ebdd9ca49186a8a98afd0d8ef03b
description: MuleSoft Documentation Site
latest: true
---
# Graph API を使用した検索

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

Exchange Graph API は Anypoint Exchange および Anypoint Platform にアクセスします。検索には、非公開 Exchange のアセットにアクセスするための認証が必要です。MuleSoft 公開アセットのみを検索する場合、認証は必要ありません。

Exchange Graph API は、Anypoint Platform アカウントなしで使用し、MuleSoft によって一般公開されているアセットを検索できます。API を介して非公開コンテンツにアクセスするには、Anypoint Platform アカウントが必要です。

## [](#認証)認証

認証には、アクセストークンまたは接続アプリケーションのいずれかを使用します。

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

トークン認証を使用する手順は、次のとおりです。

1. Anypoint Platform にログインします。
2. cURL コマンドでアクセストークンを取得します。

Postman や別のアプリケーションを使用して HTTP コマンドを送信することもできます。

`ANYPOINT_USERNAME`​ を Anypoint Platform ユーザーアカウント名に置き換えて、​`ANYPOINT_PASSWORD`​ をそのパスワードに置き換えます。

```console
curl --location --request POST 'https://anypoint.mulesoft.com/accounts/login' \
     --header 'Content-Type: application/json' \
     --header 'Accept: application/json' \
     --data-raw '{
        "username":"ANYPOINT_USERNAME",
        "password":"ANYPOINT_PASSWORD"
     }' | jq -r ".access_token"
```

API コールでこのアクセストークンを使用します。

組織のシステム管理者は、アクセストークンの有効期限を 15 分～ 180 分の値に設定します。検索やより多くの時間を必要とする他の操作を実行する場合、追加のトークンを要求する必要があります。

[Access Management API の「Authentication (認証)」](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/api/v1/pages/Authentication/)​も参照してください。

接続アプリケーション認証を使用する手順は、次のとおりです。

1. [接続アプリケーションを作成](https://docs.mulesoft.com/jp/exchange/connected-app-authentication)​します。
2. 基本認証を使用するか、クエリ変数認証を使用するかを選択します。
    
    基本認証とクエリ変数認証の両方が設定されている場合、API は基本認証を使用し、クエリ変数認証を無視します。
3. 基本認証を使用するには、基本認証を指定し、​`~~~Client~~~`​ としてユーザー名、​`clientID~?~clientSecret`​ としてパスワードを定義します。
    
    1. `clientID`​ をクライアント ID に置き換えます。
    2. `clientSecret`​ をクライアントシークレットに置き換えます。
4. クエリ変数認証を使用するには、クエリ変数の認証項目として接続アプリケーション認証を定義します。
    
    ```json
    {
      "authorization": "Basic ABC123"
    }
    ```
    
    `ABC123`​ を、連結されたクライアント ID とクライアントシークレットの base64 エンコード ​`~~~Client~~~:clientID~?~clientSecret`​ に置き換えます。

## [](#graph-api-のアクセス-url)Graph API のアクセス URL

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

例:

```json
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 クエリが含まれています。

```json
{
  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
    contactName
    contactEmail
    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、およびバージョンを取得できます。

```json
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-のみを検索する)非公開 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"]`
    
    ```json
    {
      assets(
        query: {
          searchTerm: "product",
          organizationIds: ["4141141", "32322", "2342345"]
        },
        latestVersionsOnly: true
      ) {
        assetId,
        description
      }
    }
    ```
    
    この例の出力は次のようになります。
    
    ```json
    {
      "data": {
        "assets": [
          {
            "assetId": "product-datatype",
            "description": "Product Datatype Asset"
          },
          {
            "assetId": "product-api",
            "description": "Product API Asset"
          }
        ]
      }
    }
    ```

## [](#アセットライフサイクル状態)アセットライフサイクル状態

アセットとそのライフサイクル状態をコンシュームするには、​`ANYPOINT_TOKEN`​、​`:groupId`​、​`:assetId`​、​`:version`​ を対象の情報に置き換えて、次のコマンドを実行します。

```console
curl -X POST \
  https://anypoint.mulesoft.com/graph/api/v2/graphql \
  -H 'Authorization: bearer ANYPOINT_TOKEN' \
  -H 'content-type: application/json' \
  -d '{"query":"{asset(groupId: \":groupId\",assetId: \":assetId\",version: \":version\"){groupId assetId version status}}"}'
```

ライフサイクル状態でアセットを検索するには、​`ANYPOINT_TOKEN`​ を対象の情報に置き換えて、​`[development, published, deprecated]`​ を目的のライフサイクル状態のリストに置き換えて、次のコマンドを実行します。

```console
curl -X POST \
  https://anypoint.mulesoft.com/graph/api/v2/graphql \
  -H 'Authorization: bearer ANYPOINT_TOKEN' \
  -H 'content-type: application/json' \
  -d '{"query":"{assets(status:[development, published, deprecated]){groupId assetId version status}}"}'
```

## [](#リファレンス-クエリ検索条件パラメーター)リファレンス: クエリ検索条件パラメーター

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

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

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">assetId</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各アセットのアセット ID。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">createdAt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットの作成日時 (例: 2018-08-11T04:48:20.585Z)。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">createdBy { id, userName, firstName, lastName }</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットの作成者を表示します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">dependencies { groupId, assetId, version, name, type }</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">リストされたアセットが依存するアセットを返します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">files { classifier, packaging, externalLink, md5 }</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ファイル情報。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセット名。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">contactName</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットについて連絡するユーザーの名前。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">contactEmail</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットについて連絡するユーザーのメールアドレス。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">numberOfRates</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットの星による評価の数。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">organizationId</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットの組織 ID。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rating</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットの星による評価の値。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">runtimeVersion</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule Runtime バージョン。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tags { value, key, mutable }</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットタグ。ユーザーインターフェースでパブリッシュ時に作成されたタグは、​<code>value</code>​ タグのみになります (キーはありません)。ユーザーインターフェースで作成されたタグは変更可能で、その他のタグは変更できません。キーと値のあるタグは、アセットを説明するために Exchange によって作成された特別なタグです。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Exchange の [All Types (すべてのタイプ)] メニューに対応する小文字の connector、template、example、rest-api、soap-api、raml-fragment、custom の値。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">version</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットのバージョン。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">groupId</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アセットのグループ ID。</p></td>
</tr>
</tbody>
</table>

## [](#関連情報)関連情報

- [Exchange Graph API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/exchange-graph-http/)
- [Anypoint Exchange](https://anypoint.mulesoft.com/exchange/)
- [Exchange ドキュメント](https://docs.mulesoft.com/jp/exchange/)