Documentation

User Groups APIの基本

アプリケーションメニューから Create and Manage User Groups を利用できますが、LiferayのREST APIを利用することも可能です。 これらのサービスを呼び出して、ユーザーグループを管理します。

ユーザーグループの追加

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

docker run -it -m 8g -p 8080:8080 liferay/dxp:7.4.13-u55。

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

次に、以下の手順を実行します。

  1. User Groups API Basics をダウンロードし、解凍してください。

    curl https://learn.liferay.com/dxp/latest/ja/users-and-permissions/developer-guide/liferay-y6f2.zip -O
    
    unzip liferay-y6f2.zip
    
  2. cURLスクリプトを使用して、インスタンスに新しいユーザーグループを追加します。 コマンドラインで、 curl フォルダに移動します。 UserGroup_POST_ToInstance.sh スクリプトを実行します。

    ./UserGroup_POST_ToInstance.sh
    

    JSONレスポンスには、新しいユーザーグループが追加されたことが示されています。

    "description" : "",
    "externalReferenceCode" : "72c5739f-a6e9-d4b8-5481-7cf1a427ea79",
    "id" : 43099,
    "name" : "Able",
    "usersCount" : 0
    
  3. Global MenuControl PanelUser Groups に移動します。 新しいユーザーグループが追加されたことを確認します。

    新しいユーザーグループが追加されたことを確認します。

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

    javac -classpath .:* *.java
    
  5. UserGroup_POST_ToInstance.java クラスを、以下のコマンドで実行します。

    java -classpath .:* UserGroup_POST_ToInstance
    

cURLコマンドの検証

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

curl \
	-H "Content-Type: application/json" \
	-X POST \
	"http://localhost:8080/o/headless-admin-user/v1.0/user-groups" \
	-d "{\"name\": \"Able\"}" \
	-u "[email protected]:learn"

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

引数

説明

-H "Content-Type: application/json"

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

-X POST

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

"http://localhost:8080/o/headless-admin-user/v1.0/user-groups"

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

-d "{\"name\": \"Able\"}"

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

-u "test@liferay.com:learn"

基本的な認証情報

注釈

ここでは、デモのためにベーシック認証を使用しています。 本番環境では、 OAuth2 経由でユーザーを認証する必要があります。 OAuth2を利用したReactアプリケーションのサンプルは、OAuth2を使ってユーザーを認証するをご参照ください。

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

Javaクラスを調べる

UserGroup_POST_ToInstance.java クラスは、ユーザーグループ関連サービスを呼び出して、ユーザーグループを追加します。

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	UserGroup userGroup = userGroupResource.postUserGroup(
		new UserGroup() {
			{
				name = "Dog";
			}
		});

	System.out.println(userGroup);
}

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

行(省略形)

説明

UserGroupResource.Builder builder = ...

UserGroupResource サービスインスタンスを生成するための Builder を取得する。

UserGroupResource userGroupResource = builder.authentication(...).build();

Basic 認証を指定し、 UserGroupResource サービスインスタンスを生成します。

UserGroup userGroup = userGroupResource.postUserGroup(...);

userGroupResource.postUserGroup メソッドを呼び出し、post にデータを渡します。

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

注釈

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

他のJavaクラスの例もこれと同様ですが、異なる UserGroupResource メソッドを呼び出しています。

重要

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

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

インスタンスからユーザーグループを取得する

以下のcURLまたはJavaコマンドを実行することで、User Groupの一覧を表示することができます。

UserGroups_GET_FromInstance.sh

コマンド:

./UserGroups_GET_FromInstance.sh

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/user-groups" \
	-u "[email protected]:learn"

UserGroups_GET_FromInstance.java

コマンド:

java -classpath .:* UserGroups_GET_FromInstance

コード:

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	Page<UserGroup> page = userGroupResource.getUserGroupsPage(
		null, null, Pagination.of(1, 2), null);

	System.out.println(page);
}

Instance の UserGroup オブジェクトが JSON で表示されます。

ユーザーグループの取得

以下のcURLまたはJavaコマンドで、特定のユーザーグループを取得します。

Tip

ユーザーグループ ID を取得するには、 UserGroups_GET_FromInstance.[java|sh] を使用します。

UserGroup_GET_ById.sh

コマンド:

./UserGroup_GET_ById.sh 1234

コード:

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

UserGroup_GET_ById.java

コマンド:

java -classpath .:* -DuserGroupId=1234 UserGroup_GET_ById

コード:

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	System.out.println(
		userGroupResource.getUserGroup(
			Long.valueOf(System.getProperty("userGroupId"))));
}

UserGroup フィールドは、JSONで表示されます。

ユーザーグループのパッチ

以下のcURLとJavaコマンドを使用して、既存のユーザーグループの部分編集を行います。 1234 をユーザーグループのIDに置き換えてください。

UserGroup_PATCH_ById.sh

コマンド:

./UserGroup_PATCH_ById.sh 1234

コード:

curl \
	-H "Content-Type: application/json" \
	-X PATCH \
	"http://localhost:8080/o/headless-admin-user/v1.0/user-groups/${1}" \
	-d "{\"name\": \"Baker\"}" \
	-u "[email protected]:learn"

UserGroup_PATCH_ById.java

コマンド:

java -classpath .:* -DuserGroupId=1234 UserGroup_PATCH_ById

コード:

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	UserGroup userGroup = userGroupResource.patchUserGroup(
		Long.valueOf(System.getProperty("userGroupId")),
		new UserGroup() {
			{
				name = "Easy";
			}
		});

	System.out.println(userGroup);
}

ユーザーグループを置く

以下のcURLとJavaのコマンドで、既存のユーザーグループを完全に上書きします。 1234 をユーザーグループのIDに置き換えてください。

UserGroup_PUT_ById.sh

コマンド:

./UserGroup_PUT_ById.sh 1234

コード:

curl \
	-H "Content-Type: application/json" \
	-X PUT \
	"http://localhost:8080/o/headless-admin-user/v1.0/user-groups/${1}" \
	-d "{\"name\": \"Charlie\"}" \
	-u "[email protected]:learn"

UserGroup_PUT_ById.java

コマンド:

java -classpath .:* -DuserGroupId=1234 UserGroup_PUT_ById

コード:

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	UserGroup userGroup = userGroupResource.putUserGroup(
		Long.valueOf(System.getProperty("userGroupId")),
		new UserGroup() {
			{
				name = "Fox";
			}
		});

	System.out.println(userGroup);
}

ユーザーグループの削除

以下のcURLおよびJavaコマンドで、既存のUser Groupを削除します。 1234 をユーザーグループのIDに置き換えてください。

UserGroup_DELETE_ById.sh

コマンド:

./UserGroup_DELETE_ById.sh 1234

コード:

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

UserGroup_DELETE_ById.java

コマンド

java -classpath .:* -DuserGroupId=1234 UserGroup_DELETE_ById

コード:

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

	UserGroupResource userGroupResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	userGroupResource.deleteUserGroup(
		Long.valueOf(System.getProperty("userGroupId")));
}

API Explorer には UserGroup のすべてのサービスとスキーマが表示され、各サービスを試用するためのインターフェイスが用意されています。