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_に変更します。
次に、以下の手順を実行します。
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
cURLスクリプトを使用して、インスタンスに新しいユーザーグループを追加します。 コマンドラインで、
curl
フォルダに移動します。UserGroup_POST_ToInstance.sh
スクリプトを実行します。./UserGroup_POST_ToInstance.sh
JSONレスポンスには、新しいユーザーグループが追加されたことが示されています。
"description" : "", "externalReferenceCode" : "72c5739f-a6e9-d4b8-5481-7cf1a427ea79", "id" : 43099, "name" : "Able", "usersCount" : 0
Global Menu → Control Panel → User Groups に移動します。 新しいユーザーグループが追加されたことを確認します。
RESTサービスは、Javaクライアントを使って呼び出すこともできます。
curl
フォルダから、java
フォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。javac -classpath .:* *.java
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"
コマンドの引数は次のとおりです。
引数 |
説明 |
---|---|
|
リクエストボディのフォーマットがJSONであることを示します。 |
|
指定されたエンドポイントで起動するHTTPメソッド |
|
RESTサービスのエンドポイント |
|
お客様が掲載を希望するデータ |
|
基本的な認証情報 |
注釈
ここでは、デモのためにベーシック認証を使用しています。 本番環境では、 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サービスを呼び出します。
行(省略形) |
説明 |
---|---|
|
|
|
Basic 認証を指定し、 |
|
|
プロジェクトには、依存関係として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
のすべてのサービスとスキーマが表示され、各サービスを試用するためのインターフェイスが用意されています。