Exchange Graph API を使用して、Exchange アセットで文字列値を検索します。各検索で返される値を指定できます。
Exchange Graph API は Anypoint Exchange および Anypoint Platform にアクセスします。検索には、非公開 Exchange のアセットにアクセスするための認証が必要です。MuleSoft 公開アセットのみを検索する場合、認証は必要ありません。
Exchange Graph API は、Anypoint Platform アカウントなしで使用し、MuleSoft によって一般公開されているアセットを検索できます。API を介して非公開コンテンツにアクセスするには、Anypoint Platform アカウントが必要です。
認証
認証には、アクセストークンまたは接続アプリケーションのいずれかを使用します。
認証は、MuleSoft によって作成されていないアセットを検索する場合にのみ必要です。
トークン認証を使用する手順は、次のとおりです。
-
Anypoint Platform にログインします。
-
cURL コマンドでアクセストークンを取得します。
Postman や別のアプリケーションを使用して HTTP コマンドを送信することもできます。
ANYPOINT_USERNAME を Anypoint Platform ユーザーアカウント名に置き換えて、ANYPOINT_PASSWORD をそのパスワードに置き換えます。
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 (認証)」も参照してください。
接続アプリケーション認証を使用する手順は、次のとおりです。
-
接続アプリケーションを作成します。
-
基本認証を使用するか、クエリ変数認証を使用するかを選択します。
基本認証とクエリ変数認証の両方が設定されている場合、API は基本認証を使用し、クエリ変数認証を無視します。
-
基本認証を使用するには、基本認証を指定し、
~~~Client~~~ としてユーザー名、clientID~?~clientSecret としてパスワードを定義します。-
clientID をクライアント ID に置き換えます。 -
clientSecret をクライアントシークレットに置き換えます。
-
-
クエリ変数認証を使用するには、クエリ変数の認証項目として接続アプリケーション認証を定義します。
{ "authorization": "Basic ABC123" }ABC123 を、連結されたクライアント ID とクライアントシークレットの base64 エンコード ~~~Client~~~:clientID~?~clientSecret に置き換えます。
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
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、およびバージョンを取得できます。
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 でアセットをクリックして、非公開 Exchange の組織 ID を取得します。
URL の例を次に示します。
https://anypoint.mulesoft.com/exchange/42424242/product-api/1.0.0/
42424242 が組織 ID です。 -
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" } ] } }
アセットライフサイクル状態
アセットとそのライフサイクル状態をコンシュームするには、ANYPOINT_TOKEN、:groupId、:assetId、:version を対象の情報に置き換えて、次のコマンドを実行します。
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] を目的のライフサイクル状態のリストに置き換えて、次のコマンドを実行します。
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}}"}'
リファレンス: クエリ検索条件パラメーター
各アセットに関する追加情報を表示する検索条件を指定できます。
次の検索条件で、クエリ出力を絞り込むことができます。
| パラメーター | 説明 |
|---|---|
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 |
アセット名。 |
contactName |
アセットについて連絡するユーザーの名前。 |
contactEmail |
アセットについて連絡するユーザーのメールアドレス。 |
numberOfRates |
アセットの星による評価の数。 |
organizationId |
アセットの組織 ID。 |
rating |
アセットの星による評価の値。 |
runtimeVersion |
Mule Runtime バージョン。 |
tags { value, key, mutable } |
アセットタグ。ユーザーインターフェースでパブリッシュ時に作成されたタグは、 |
type |
Exchange の [All Types (すべてのタイプ)] メニューに対応する小文字の connector、template、example、rest-api、soap-api、raml-fragment、custom の値。 |
version |
アセットのバージョン。 |
groupId |
アセットのグループ ID。 |