オプション値APIの基本

オプションの値は、オプション・アプリケーションから、またはREST APIを使って管理することができます。 headless-commerce-admin-catalog サービスを呼び出して、オプション値を作成・管理する。

オプション値の追加

新しいLiferay DXPインスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/dxp:2024.q1.1。

メールアドレス test@liferay.com とパスワード test を使用して、http://localhost:8080でLiferayにサインインしてください。 プロンプトが表示されたら、パスワードを learn に変更します。

  1. Option Value API Basics をダウンロードして解凍します。

    curl https://resources.learn.liferay.com/commerce/latest/en/product-management/developer-guide/liferay-c7w9.zip -O
    
    unzip liferay-c7w9.zip
    
  2. オプション値はオプションにスコープされる。 まだオプションを作成していない場合は、 オプションAPIの基本 を参照してください。 新規オプシ ョ ン値を作成す る 際には、 オプシ ョ ンの id と 、 一意キー と 、 オプシ ョ ン値の名前を与え る 必要があ り ます。

    cURLスクリプトを使用して、新しいオプション値を追加する。 コマンドラインで、 curlフォルダに移動します。 OptionValue_POST_ToOption.sh スクリプトを、適切なオプションIDをパラメータとして実行する。

    ./OptionValue_POST_ToOption.sh 1234
    

    JSONレスポンスは、新しいオプション値が追加されたことを示す:

    {
       "actions" : {
          "get" : {
             "method" : "GET",
             "href" : "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/{id}"
          },
          "update" : {
             "method" : "PATCH",
             "href" : "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/{id}"
          },
          "delete" : {
             "method" : "DELETE",
             "href" : "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/{id}"
          }
       },
       "externalReferenceCode" : "c63216c7-9043-90ab-35b9-6efbe36b47ff",
       "id" : 46709,
       "key" : "able",
       "name" : {
          "en_US" : "Able"
       },
       "priority" : 0.0
    }
    
  3. オプション値の追加を確認するには、 Global Menu(Applications Menu icon) を開き、 CommerceOptions に移動します。 適切なオプションを選択してください。 新しいオプション値がValuesセクションに表示される。

    新しいオプション値が追加されたことを確認する。

  4. または、Javaクライアントを使用してRESTサービスを呼び出します。 javaフォルダに移動し、ソースファイルをコンパイルします。

    javac -classpath .:* *.java
    
  5. OptionValue_POST_ToOption クラスを実行し、 optionId を適切な値に置き換える。

    java -classpath .:* -DoptionId=1234 OptionValue_POST_ToOption
    

cURLコマンドの検証

OptionValue_POST_ToOption.sh スクリプトは、cURLコマンドでRESTサービスを呼び出します。

curl \
	"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/options/${1}/optionValues" \
	--data-raw '
		{
			"key": "able",
			"name": {
				"en_US": "Able"
			}
		}' \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

コマンドの引数は次のとおりです。

引数 説明
-H "Content-Type: application/json" リクエストボディの形式をJSONに設定します。
-X POST 指定されたエンドポイントで呼び出す HTTP メソッドを設定します。
"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/options/${1}/optionValues" RESTサービスのエンドポイントを指定します。
-d "{\"key\": \"able\", \"name\": {\"en_US\": \"Able\"}}" 投稿するデータを入力します。
-u "test@liferay.com:learn" 基本認証の認証情報を入力します。
note

ここでは、デモのために基本的な認証を使用しています。 本番環境では、 OAuth 2.0を使用する 経由でユーザーを認証する必要があります。 OAuth2を活用したReactアプリケーションのサンプルは、 OAuth2によるユーザーの認証 をご覧ください。

他のcURLコマンドも同様のJSON引数を使用します。

Javaクラスを調べる

OptionValue_POST_ToOption.java クラスは、 OptionValueResource サービスを呼び出してオプション値を追加します。

public static void main(String[] args) throws Exception {
	OptionValueResource.Builder builder = OptionValueResource.builder();

	OptionValueResource optionValueResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		optionValueResource.postOptionIdOptionValue(
			Long.valueOf(System.getProperty("optionId")),
			new OptionValue() {
				{
					key = "able";
					name = new HashMap<String, String>() {
						{
							put("en_US", "Able");
						}
					};
				}
			}));
}

このクラスは、次の3行のコードのみを使用してRESTサービスを呼び出します。

行(省略形) 説明
OptionValueResource.Builder builder = ... OptionValueResource サービスインスタンスを生成するための Builder を取得します。
OptionValueResource optionValueResource = builder.authentication(...).build(); 基本認証を使用し、 OptionValueResource サービスインスタンスを生成する。
optionValueResource.postOption(...); optionValueResource.postOptionIdOptionValue メソッドを呼び出し、post にデータを渡します。

このプロジェクトには、依存関係としてcom.liferay.headless.commerce.admin.catalog.client.jar ファイルが含まれています。 すべてのRESTアプリケーションのクライアントJAR依存情報は、インストール先のAPIエクスプローラーで/o/api (例: http://localhost:8080/o/api) から確認できます。

note

mainメソッドのコメントでは、クラスの実行を実演しています。

残りのサンプル Java クラスは、異なる OptionValueResource メソッドを呼び出します。

important

サービスの詳細は OptionValueResource を参照してください。

以下は、cURL と Java を使用して他の OptionValue REST サービスを呼び出す例です。

オプションからオプション値を取得する

cURLまたはJavaコマンドでオプションからすべてのオプション値をリストする。 1234をオプションのIDに置き換えます。

OptionValues_GET_FromOption.sh

コマンド:

./OptionValues_GET_FromOption.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/options/${1}/optionValues" \
	--user "test@liferay.com:learn"

OptionValues_GET_FromOption.java

コマンド:

java -classpath .:* -DoptionId=1234 OptionValues_GET_FromOption

コード:

public static void main(String[] args) throws Exception {
	OptionValueResource.Builder builder = OptionValueResource.builder();

	OptionValueResource optionValueResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		optionValueResource.getOptionIdOptionValuesPage(
			Long.valueOf(System.getProperty("optionId")), null,
			Pagination.of(1, 2), null));
}

オプションの OptionValue オブジェクトはJSONでフォーマットされています。

オプション値の取得

cURL または Java get コマンドで特定のオプション値を取得。 1234 をオプション値のIDに置き換える。

tip

OptionValues_GET_FromOption.[java|sh]を使用して、オプションに関連するすべてのオプション値のリストを取得し、特に必要なオプション値のidをメモする。

OptionValue_GET_ById.sh

コマンド:

./OptionValue_GET_ById.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/${1}" \
	--user "test@liferay.com:learn"

OptionValue_GET_ById.java

コマンド:

java -classpath .:* -DoptionValueId=1234 OptionValue_GET_ById

コード:

public static void main(String[] args) throws Exception {
	OptionValueResource.Builder builder = OptionValueResource.builder();

	OptionValueResource optionValueResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		optionValueResource.getOptionValue(
			Long.valueOf(System.getProperty("optionValueId"))));
}

OptionValue フィールドがJSONでリストされている。

オプション値のパッチ

cURL と Java patch コマンドで既存のオプション値を更新。 1234 をオプション値のIDに置き換えてください。

OptionValue_PATCH_ById.sh

コマンド:

./OptionValue_PATCH_ById.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/${1}" \
	--data-raw '
		{
			"name": {
				"en_US": "Bar"
			}
		}' \
	--header "Content-Type: application/json" \
	--request "PATCH" \
	--user "test@liferay.com:learn"

OptionValue_PATCH_ById.java

コマンド:

java -classpath .:* -DoptionValueId=1234 OptionValue_PATCH_ById

コード:

public static void main(String[] args) throws Exception {
	OptionValueResource.Builder builder = OptionValueResource.builder();

	OptionValueResource optionValueResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	optionValueResource.patchOptionValue(
		Long.valueOf(System.getProperty("optionValueId")),
		new OptionValue() {
			{
				name = new HashMap<String, String>() {
					{
						put("en_US", "Baker");
					}
				};
			}
		});
}

オプション値の削除

cURL と Java delete コマンドで既存のオプション値を削除。 1234 をオプション値のIDに置き換えてください。

OptionValue_DELETE_ById.sh

コマンド:

./OptionValue_DELETE_ById.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/optionValues/${1}" \
	--request "DELETE" \
	--user "test@liferay.com:learn"

OptionValue_DELETE_ById.java

コマンド

java -classpath .:* -DoptionValueId=1234 OptionValue_DELETE_ById

コード:

public static void main(String[] args) throws Exception {
	OptionValueResource.Builder builder = OptionValueResource.builder();

	OptionValueResource optionValueResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	optionValueResource.deleteOptionValue(
		Long.valueOf(System.getProperty("optionValueId")));
}

RESTサービスの使用 は、 OptionValue サービスとスキーマを表示し、各サービスをテストするインターフェイスを持っています。

Ask

Capabilities

Product

DXP

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy