Documentation

カテゴリーとボキャブラリAPIの基本

LiferayのREST APIは、Liferayのカテゴリーとボキャブラリ機能のためのサービスを提供します。 APIを使用してボキャブラリを作成および編集できます。 カテゴリーをAPIに関連付けて編集することもできます。 まずは、新しいボキャブラリを追加する例を見てみましょう。

ボキャブラリの追加

  1. Liferay DXPを起動します。 まだDockerコンテナがない場合は、以下を使用します。

    docker run -it -m 8g -p 8080:8080 liferay/dxp:7.4.13-u29
    
  2. カテゴリーとボキャブラリAPIの基本 をダウンロードして解凍します。

    curl https://learn.liferay.com/dxp/latest/ja/content-authoring-and-management/tags-and-categories/developer-guide/liferay-f5w3.zip -O
    
    unzip liferay-f5w3.zip
    
  3. サイトのIDを検索します 。 これは、以下のさまざまなサービス呼び出しで使用します。

  4. cURLスクリプトを使用して、サイトに新しいボキャブラリを追加します。 コマンドラインで、 curl フォルダに移動します。 サイトIDをパラメーターとして使用して、TaxonomyVocabulary_POST_ToSite.shスクリプトを実行します。

    ./TaxonomyVocabulary_POST_ToSite.sh 1234
    

    JSON応答では、新しいボキャブラリが追加されたことを示しています。

    
    

"availableLanguages" : [ "en-US" ], "creator" : { "additionalName" : "", "contentType" : "UserAccount", "familyName" : "Test", "givenName" : "Test", "id" : 20129, "name" : "Test Test", "profileURL" : "/web/test" }, "dateCreated" : "2021-09-09T21:03:15Z", "dateModified" : "2021-09-09T21:03:15Z", "description" : "Foo", "id" : 40126, "name" : "Able", "numberOfTaxonomyCategories" : 0, "siteId" : 20125 ```

  1. Administration Menu] → [カテゴリー設定] → [カテゴリー] に移動して、カテゴリーアプリケーションに移動します。 新しいボキャブラリが追加されたことを確認してください。

    新しいボキャブラリが追加されました。

  2. RESTサービスは、Javaクライアントを使って呼び出すこともできます。 curl フォルダから、 java フォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。

    javac -classpath .:* *.java
    
  3. 以下のコマンドを使用してTaxonomyVocabulary_POST_ToSiteクラスを実行します。 siteId値をサイトのIDに置き換えます。

    java -classpath .:* -DsiteId=1234 TaxonomyVocabulary_POST_ToSite
    

cURLコマンドの検証

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

curl \
	-H "Content-Type: application/json" \
	-X POST \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/sites/${1}/taxonomy-vocabularies" \
	-d "{\"description\": \"Foo\", \"name\": \"Able\"}" \
	-u "[email protected]:learn"

ここでは、コマンドの引数を紹介します。

引数

Description

-H "Content-Type: application/json"

リクエストボディのフォーマットがJSONであることを示します。

-X POST

指定されたエンドポイントで起動するHTTPメソッド

"http://localhost:8080/o/headless-admin-taxonomy/v1.0/sites/${1}/taxonomy-vocabularies"

RESTサービスのエンドポイント

-d "{\"description\": \"Foo\", \"name\": \"Able\"}"

お客様が掲載を希望するデータ

-u "test@liferay.com:test"

基本的な認証情報

注釈

ここでは、デモのためにベーシック認証を使用しています。 本番環境の場合は、OAuth2経由でユーザーを認証する必要があります。

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

Javaクラスを調べる

TaxonomyVocabulary_POST_ToSite.javaクラスは、ボキャブラリ関連サービスを呼び出すことによってボキャブラリを追加します。

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	TaxonomyVocabulary taxonomyVocabulary =
		taxonomyVocabularyResource.postSiteTaxonomyVocabulary(
			Long.valueOf(System.getProperty("siteId")),
			new TaxonomyVocabulary() {
				{
					description = "Foo";
					name = "Baker";
				}
			});

このクラスは、わずか3行のコードでRESTサービスを呼び出します。

行(省略形)

説明

TaxonomyVocabularyResource.Builder builder = ...

Builderを取得し、TaxonomyVocabularyResourceサービスインスタンスを生成します。

TaxonomyVocabularyResource taxonomyVocabularyResource = builder.authentication(...).build();

基本認証を指定し、TaxonomyVocabularyResourceサービスインスタンスを生成します。

TaxonomyVocabulary taxonomyVocabulary = taxonomyVocabularyResource.postSiteTaxonomyVocabulary(...);

postSiteTaxonomyVocabularyメソッドを呼び出し、投稿するデータを渡します。

プロジェクトには、依存関係としてcom.liferay.headless.admin.taxonomy.client.jarファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/apiでインストール先のAPIエクスプローラーで確認できます。

注釈

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

他の例のJavaクラスはこれと類似していますが、異なるTaxonomyVocabularyResourceメソッドを呼び出します。

重要

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

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

サイトからボキャブラリを取得する

次のcURLまたはJavaコマンドを実行すると、サイトのボキャブラリを一覧表示できます。 上記のように、1234をサイトのIDに置き換えてください。

TaxonomyVocabularies GET FromSite.sh

コマンド:

./TaxonomyVocabularies_GET_FromSite.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/sites/${1}/taxonomy-vocabularies" \
	-u "[email protected]:learn"

TaxonomyVocabularies GET FromSite.java

コマンド:

java -classpath .:* -DsiteId=1234 TaxonomyVocabularies_GET_FromSite

コード:

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	Page<TaxonomyVocabulary> page =
		taxonomyVocabularyResource.getSiteTaxonomyVocabulariesPage(
			Long.valueOf(System.getProperty("siteId")), null, null,
			Pagination.of(1, 2), null);

サイトのTaxonomyVocabularyオブジェクトがJSONに一覧表示されます。

ボキャブラリの取得

次のcURLまたはJavaコマンドを使用して、特定のボキャブラリを取得します。 1234をボキャブラリのIDに置き換えてください。

ちなみに

TaxonomyVocabularies_GET_FromSite.[java|sh]を使用してVocabulary IDを取得します。

TaxonomyVocabulary GET ById.sh

コマンド:

./TaxonomyVocabulary_GET_ById.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${1}" \
	-u "[email protected]:learn"

TaxonomyVocabulary GET ById.java

コマンド:

java -classpath .:* -DtaxonomyVocabularyId=1234 TaxonomyVocabulary_GET_ById

コード:

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	TaxonomyVocabulary taxonomyVocabulary =
		taxonomyVocabularyResource.getTaxonomyVocabulary(
			Long.valueOf(System.getProperty("taxonomyVocabularyId")));

	System.out.println(taxonomyVocabulary);
}

TaxonomyVocabularyフィールドがJSONに一覧表示されます。

ボキャブラリにパッチを適用する

次のcURLおよびJavaコマンドを使用して、既存のボキャブラリを部分的に編集します。 注: 1234をボキャブラリのIDに置き換えてください。

TaxonomyVocabulary PATCH ById.sh

コマンド:

./TaxonomyVocabulary_PATCH_ById.sh 1234

コード:

curl \
	-H "Content-Type: application/json" \
	-X PATCH \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${1}" \
	-d "{\"description\": \"Bar\", \"name\": \"Able\"}" \
	-u "[email protected]:learn"

TaxonomyVocabulary PATCH ById.java

コマンド:

java -classpath .:* -DtaxonomyVocabularyId=1234 TaxonomyVocabulary_PATCH_ById

コード:

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	TaxonomyVocabulary taxonomyVocabulary =
		taxonomyVocabularyResource.patchTaxonomyVocabulary(
			Long.valueOf(System.getProperty("taxonomyVocabularyId")),
			new TaxonomyVocabulary() {
				{
					description = "Bar";
					name = "Baker";
				}

この例では、説明がFooからBarに変更されています。

ボキャブラリの配置

次のcURLおよびJavaコマンドを使用して、既存のボキャブラリを上書きします。 注: 1234をボキャブラリのIDに置き換えてください。

TaxonomyVocabulary PUT ById.sh

コマンド:

./TaxonomyVocabulary_PUT_ById.sh 1234

コード:

curl \
	-H "Content-Type: application/json" \
	-X PUT \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${1}" \
	-d "{\"description\": \"Goo\", \"name\": \"Able\"}" \
	-u "[email protected]:learn"

TaxonomyVocabulary PUT ById.java

コマンド:

java -classpath .:* -DtaxonomyVocabularyId=1234 TaxonomyVocabulary_PUT_ById

コード:

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	TaxonomyVocabulary taxonomyVocabulary =
		taxonomyVocabularyResource.putTaxonomyVocabulary(
			Long.valueOf(System.getProperty("taxonomyVocabularyId")),
			new TaxonomyVocabulary() {
				{
					description = "Goo";
					name = "Baker";
				}
			});

	System.out.println(taxonomyVocabulary);
}

ボキャブラリの削除

次のcURLおよびJavaコマンドを使用して、既存のボキャブラリを削除します。 注: 1234をボキャブラリのIDに置き換えてください。

TaxonomyVocabulary DELETE ById.sh

コマンド:

./TaxonomyVocabulary_DELETE_ById.sh 1234

コード:

curl \
	-X DELETE \
	"http://localhost:8080/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${1}" \
	-u "[email protected]:learn"

TaxonomyVocabulary DELETE ById.java

コマンド

java -classpath .:* -DtaxonomyVocabularyId=1234 TaxonomyVocabulary_DELETE_ById

コード:

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

	TaxonomyVocabularyResource taxonomyVocabularyResource =
		builder.authentication(
			"[email protected]", "learn"
		).build();

	taxonomyVocabularyResource.deleteTaxonomyVocabulary(

タクソノミーカテゴリーサービス

タクソノミーカテゴリーのcURLコマンドとJavaクラスは、タクソノミーボキャブラリと同様に機能します。 一部のサービスではタクソノミーのボキャブラリIDが必要であることに注意してください。

ファイル

説明

TaxonomyCategories_GET_FromTaxonomyVocabulary.[java|sh]

ボキャブラリからカテゴリーの一覧を取得します。

TaxonomyCategory_DELETE_ById.[java|sh]

カテゴリーを削除します。

TaxonomyCategory_GET_ById[java|sh]

IDで特定のカテゴリーを取得します。

TaxonomyCategory_PATCH_ById.[java|sh]

カテゴリーにパッチを適用します。

TaxonomyCategory_POST_ToTaxonomyVocabulary.[java|sh]

カテゴリーをボキャブラリに投稿します。

TaxonomyCategory_PUT_ById.[java|sh]

カテゴリーを配置します。

APIエクスプローラーには、TaxonomyVocabularyおよびTaxonomyCategoryのすべてのサービスとスキーマが一覧表示され、各サービスを試すためのインターフェイスがあります。