REST API: Object Store v2

Anypoint Object Store v2 (Object Store v2) では、​key,list​ 値の取得と保存ができる REST API が提供されます。

オブジェクトストアは 1 つのアプリケーションと連動して一時的にアプリケーションデータを保存します。 アクセスを認証するには、アプリケーションのクライアント ID とクライアントシークレットが必要です。Object Store では、これらは Anypoint Platform の Runtime Manager に表示されます。

「Object Store v2 でのデータ存続期間は?」​を参照してください。1 回の GET 操作で取得できるキーの最大数は 25 です。

Object Store v2 の操作の概要

Object Store Connector は ​key,value​ 形式で読み書きしますが、Object Store v2 API は ​key,list​ 値を読み書きします。

注意:​ アプリケーションが REST インターフェースを使用してオブジェクトストアに書き込み、Mule 3 Object Store Connector を使用して同じキーから読み取る場合、この読み取りではリストの要素 0 の値しか取得できません。そのため、REST API を使用する場合は、オブジェクトストアの内容を読み書きするための API のみを使用してください。そうしないと、API を使用して書き込める先はインデックス 0 のみになります。この制限は、Mule 4 と Anypoint Platform Object Store Connector には適用されません。

次の表では、Object Store REST API 操作を Object Store Connector 操作と比較しています。

Object Store v2 API Object Store v2 REST API 操作 Object Store Connector 操作

POST

  • Object Store:

    • オブジェクトストの TTL (秒) - デフォルトでは TTL は 2,592,000 秒 (30 日間) です。​「Object Store v2 でのデータ存続期間は?」​を参照してください。

    • 永続性プロパティ。

    • アプリケーションまたは環境ごとの使用制限。キーまたはサイズに基づいて制限するオプションやその適用方法を含みます。

  • キーおよびリスト (項目) 値。

Store (保存)

GET

  • Get keys (キーを取得)

  • Get item (項目を取得)

  • Get items (複数の項目を取得)

  • Get all items (すべての項目を取得)

  • Get regions for an organization (組織のリージョンを取得)

Contains (包含チェック) + Retrieve (取得) + Retrieve all keys (すべてのキーを取得) + Retrieve and store (取得して保存) (Retrieve 部分)

PUT

  • Put item as String (項目を文字列として更新)

  • Put item as Number (項目を数値として更新)

  • Put item as confirmable String (項目を確認可能な文字列として更新)

  • Put store (更新して保存)

Dual store (2 段階保存) ​​ + Store (保存)

DELETE

  • Remove object store (オブジェクトストアを削除)

  • Delete key (キーを削除)

  • Delete item (項目を削除)

Remove (削除)

​ Object Store Connector の Dual Store 操作は、キーで値を保存する操作と、その後に値でキーを保存する操作の 2 つで構成されます。Dual Store 操作は、Object Store v2 で 2 つの「Put item as String」(項目を文字列として更新) コールを実行して次の結果を得るのと同様に動作します。

  1. objectStore.store(key, value);

  2. objectStore.store(value, key);

Object Store v2 API ワークフローの概要

Object Store アプリケーションをデプロイする前に、Anypoint Platform にログインし、Anypoint Runtime Manager (Runtime Manager) を使用して、許可されるワーカー数を減らし、新しいアプリケーションを追加できるようにします。

Object Store v2 API には、次のようにアクセスします。

  • アプリケーションをデプロイする

  • REST API にアクセスする

  • アプリケーションのクライアント ID とクライアントシークレットを表示する

アプリケーションをデプロイする

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

  2. [Runtime Manager]​ をクリックします。

  3. 既存のアプリケーションがある場合は、それをクリックして、​[Manage Application (アプリケーションを管理)]​ をクリックします。

    初めて使用する場合は、Anypoint Studio でアプリケーションを作成します。開発が終わったら、Package Explorer でプロジェクト名を右クリックし、​[Anypoint Platform] > [Deploy to Cloud (クラウドにデプロイ)]​ をクリックします。

  4. Runtime Manager の ​[Deploying Application (アプリケーションのデプロイ)]​ メニューで、次の手順を実行します。

    1. アプリケーション名に赤い X が表示される場合は、名前を変更して名前の後に緑のチェックマークが表示されるようにします。

      選択したアプリケーション名は、ユーザがアプリケーションにアクセスするときに使用されます。 たとえば、アプリケーションに ​mydemo​ と名前を付けると、ユーザは ​http://mydemo.cloudhub.io/​ でアプリケーションにアクセスできます。

    2. [Deployment Target (デプロイターゲット)]​ 項目と ​[Application File (アプリケーションファイル)]​ 項目は無視します。Anypoint Studio によってこの情報は入力されます。

    3. 必要に応じて、ドロップダウンリストから Mule Runtime エンジンバージョン項目を変更します。

    4. 必要に応じて、ワーカーサイズ項目を変更します。

    5. [Deploy Application (アプリケーションをデプロイ)]​ をクリックします。

REST API にアクセスする

オブジェクトストアにアクセスするために、Postman などのアプリケーションをセットアップします。 次の手順で ​access_token​ 値を取得します。

  1. オブジェクトストアのアクセス URL を次のように設定します。
    {{osBaseUrl}}/api/v1/organizations/:ORGANIZATION_ID/environments/:environmentId/stores/myTestStoreId/objects

  2. オブジェクトストアに対して値の保存や読み取りができるように、HTTP ヘッダーおよび本文でアプリケーションを設定します。

  3. 操作をオブジェクトストア API に送信します。

アプリケーションのクライアント ID とクライアントシークレットを表示する

Anypoint Platform アカウントの組織管理者は、​[Object Store]​ メニューからアプリケーションのクライアント ID とクライアントシークレットを表示できます。

クライアント ID とクライアントシークレットは、Object Store v2 REST API で使用するためのアプリケーションの認証に必要です。

  1. [Anypoint Platform] > [Runtime Manager]​ にログインします。

  2. Object Store アクセス権のあるアプリケーションをクリックし、​[Manage Application (アプリケーションを管理)]​ をクリックします。このアプリケーションが実行中か、デプロイされていないことがあります。

  3. アプリケーションがまだ Object Store v2 に関連付けられていない場合、チェックボックスをオンにして変更を適用します。

  4. 左ナビゲーション領域の ​[Object Store]​ メニューをクリックし、​[Show Client Credentials (クライアントのログイン情報を表示)]​ をクリックします。

  5. [Copy to Clipboard (クリップボードにコピー)]​ アイコンをクリックし、クライアント ID またはクライアントシークレットの値を、REST API の認証に使用する curl アプリケーションに貼り付けます。

ベアラトークンを表示する

アプリケーションのクライアント ID とクライアントシークレットを確認したら、次のように curl コマンドを使用してベアラ ID を取得できます。

curl -X POST \
  https://anypoint.mulesoft.com/accounts/oauth2/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'client_id=CLIENT_ID_VALUE&client_secret=CLIENT_SECRET_VALUE&grant_type=client_credentials'

​CLIENT_ID_VALUE​ と ​CLIENT_SECRET_VALUE​ をクライアント ID とクライアントシークレットに置き換えます。

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

{
    "access_token": "42424242-5454-4242-5454-425442544254",
    "token_type": "bearer"
}

例: オブジェクトストアのリストを取得する

次の手順では、アプリケーションがすでに作成されていて、Object Store v2 へのアクセス権が付与されていることを前提とします。

注意:​ 「​アプリケーションのクライアント ID とクライアントシークレットを表示する​」の説明に従ってクライアント ID とクライアントシークレットを取得します。

環境 ID と組織 ID を取得する

[Access Management (アクセス管理)] > [Environments (環境)]​ で、アプリケーションが存在する環境をクリックします。URL から環境 ID をコピーします。URL は次のようになっています。

https://anypoint.mulesoft.com/accounts/#/cs/core/environments/edit/badd09f00f004242badd0942

[Access Management (アクセス管理)] > [Organization (組織)]​ で、​[Organization ID (組織 ID)]​ をコピーします。

オブジェクトストアのリストを表示する

BEARER_ID​ をベアラ ID、​ORG_ID​ を組織 ID、​ENV_ID​ を環境 ID に置き換えて次のコマンドを送信します。

curl -X GET \
> -H 'authorization: bearer BEARER_ID' \
> 'https://object-store-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORG_ID/environments/ENV_ID/stores'

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

{"values":[{"storeId":"APP_demo-aug12_DEFAULT_USER_STORE","encrypted":true,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600},
{"storeId":"APP_objectstore42_DEFAULT_USER_STORE","encrypted":false,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600},
{"storeId":"APP_objectstore42_mypartition","encrypted":false,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600}],"nextPageToken":null}

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub