アカウントAPIの基本
Liferay DXP/ポータル 7.4 以上
アプリケーション メニューから アカウント を管理することも、Liferay の REST API を使用することもできます。 これらのサービスを呼び出して、アカウントの作成や管理を行います。
アカウントの追加
新しいLiferay DXPインスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/dxp:2025.q1.6-lts
メールアドレス test@liferay.com とパスワード testを使用して、 http://localhost:8080 で Liferay にサインインします。 プロンプトが表示されたら、パスワードを learnに変更します。
次に、以下の手順に従います。
-
Accounts API Basicsをダウンロードして解凍します。
curl https://resources.learn.liferay.com/examples/liferay-t5p9.zip -Ounzip liferay-t5p9.zip -
cURL スクリプトを使用して、インスタンスに新しいアカウントを追加します。 コマンドラインで、
curlフォルダに移動します。Accounts_POST_ToInstance.shスクリプトを実行します。./Accounts_POST_ToInstance.shJSONのレスポンスには、新しいアカウントが追加されたことが示されています。
{ "description" : "Foo", "domains" : [ ], "externalReferenceCode" : "", "id" : 39302, "name" : "Able", "numberOfUsers" : 0, "organizationIds" : [ ], "parentAccountId" : 0, "status" : 0, "type" : "business" } -
グローバル メニュー → アプリケーション → アカウントに移動します。 新しいアカウントが追加されたことを確認します。

-
RESTサービスは、Javaクライアントを使って呼び出すこともできます。
curlフォルダから、javaフォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。javac -classpath .:* *.java -
次のコマンドで
Accounts_POST_ToInstance.javaクラスを実行します。java -classpath .:* Accounts_POST_ToInstance
cURLコマンドの検証
Accounts_POST_ToInstance.sh スクリプトは、cURL コマンドを使用して REST サービスを呼び出します。
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts" \
--data-raw '
{
"description": "Foo",
"name": "Able"
}' \
--header "Content-Type: application/json" \
--request "POST" \
--user "test@liferay.com:learn"
ここでは、コマンドの引数を紹介します。
| 引数 | 説明 |
|---|---|
--header "Content-Type: application/json" | リクエストボディのフォーマットがJSONであることを示します。 |
--request POST | 指定されたエンドポイントで起動するHTTPメソッド |
"http://localhost:8080/o/headless-admin-user/v1.0/accounts" | RESTサービスのエンドポイント |
--data-raw '{ "description": "Foo", "name": "Able" }' | お客様が掲載を希望するデータ |
--user "test@liferay.com:learn" | 基本的な認証情報 |
ここでは、デモのために基本的な認証を使用しています。 本番環境では、 OAuth2経由でユーザーを認証する必要があります。 OAuth2 を使用するサンプル React アプリケーションについては、 OAuth2 を使用してユーザーを承認する を参照してください。
他のcURLコマンドも同様のJSON引数を使用しています。
Javaクラスを調べる
Accounts_POST_ToInstance.java クラスは、アカウント関連のサービスを呼び出してアカウントを追加します。
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
Account account = accountResource.postAccount(
new Account() {
{
description = "Foo";
name = "Fox";
}
});
System.out.println(account);
}
このクラスは、わずか3行のコードでRESTサービスを呼び出します。
| 行(省略形) | 説明 |
|---|---|
AccountResource.Builder builder = ... | AccountResourcサービスインスタンスを生成するためのBuilderを取得します。 |
AccountResource accountResource = builder.authentication(...).build(); | ベーシック認証を指定し、 AccountResource サービスインスタンスを生成します。 |
Account account = accountResource.postAccount(...); | accountResource.postAccount メソッドを呼び出し、データをpostに渡します。 |
プロジェクトには、依存関係としてcom.liferay.headless.admin.user.client.jarファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/apiでインストール先のAPIエクスプローラーで確認できます。
メイン メソッドのコメントは、クラスの実行を示しています。
他のJavaクラスの例はこれと似ていますが、異なる AccountResource メソッドを呼び出しています。
サービスの詳細については、 AccountResource を参照してください。
以下は、cURLとJavaを使って、他の Account RESTサービスを呼び出す例です。
インスタンスからアカウントを取得
次の cURL または Java コマンドを実行すると、アカウントを一覧表示できます。
Accounts_GET_FromInstance.sh
コマンド:
./Accounts_GET_FromInstance.sh
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts" \
--user "test@liferay.com:learn"
Accounts_GET_FromInstance.java
コマンド:
java -classpath .:* Accounts_GET_FromInstance
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
Page<Account> page = accountResource.getAccountsPage(
null, null, Pagination.of(1, 2), null);
System.out.println(page);
}
インスタンスの アカウント オブジェクトがJSONで表示されます。
アカウントグループのフィルタリング、ページ区切り、並べ替え
この API は、アカウントをフィルタリング、ページ分割、並べ替えるためのパラメータも受け入れます。 詳細については、 getAccountsPage メソッドを参照してください。 クエリで次の アカウント フィールドを使用して、結果をフィルタリングおよび並べ替えることができます。
- Liferay DXP 2025.Q1+/Portal GA132+
カスタムフィールド dateCreateddateModifiednamestatusorganizationIdstype
| フィルタークエリ | 説明 |
|---|---|
name eq 'Foo' | アカウント名は ‘Foo'と等しくなければなりません |
customFields/orgSize eq '100.0' | orgSize という名前のカスタムフィールドは 100 です |
| ソートクエリ | 説明 |
|---|---|
dateModified:desc | dateModified で降順で並べ替え |
name:desc | 名前 で降順で並べ替え |
スペースを含まないカスタム フィールドのみを使用できます。
詳細については、 API クエリ パラメータ を参照してください。
アカウントの取得
次の cURL または Java コマンドを使用して特定のアカウントを取得します。 なお、 1234 は、アカウントのIDに置き換えてください。
Accounts_GET_FromInstance.[java|sh] を使用して、インスタンス Account ID を取得します。
Accounts_GET_ById.sh
コマンド:
./Accounts_GET_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
--user "test@liferay.com:learn"
Accounts_GET_ById.java
コマンド:
java -classpath .:* -DaccountId=1234 Accounts_GET_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
System.out.println(
accountResource.getAccount(
Long.valueOf(System.getProperty("accountId"))));
}
Account フィールドはJSONで表示されます。
アカウントへのパッチ適用
次の cURL および Java コマンドを使用して、既存のアカウントを部分的に編集します。 なお、 1234 は、アカウントのIDに置き換えてください。
Accounts_PATCH_ById.sh
コマンド:
./Accounts_PATCH_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
--data-raw '
{
"description": "Bar"
}' \
--header "Content-Type: application/json" \
--request "PATCH" \
--user "test@liferay.com:learn"
Accounts_PATCH_ById.java
コマンド:
java -classpath .:* -DaccountId=1234 Accounts_PATCH_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
Account account = accountResource.patchAccount(
Long.valueOf(System.getProperty("accountId")),
new Account() {
{
description = "Bar";
}
});
System.out.println(account);
}
アカウントの作成
次の cURL および Java コマンドを使用して、既存のアカウントを完全に上書きします。 なお、 1234 は、アカウントのIDに置き換えてください。
Accounts_PUT_ById.sh
コマンド:
./Accounts_PUT_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
--data-raw '
{
"description": "Goo",
"name": "Baker"
}' \
--header "Content-Type: application/json" \
--request "PUT" \
--user "test@liferay.com:learn"
Accounts_PUT_ById.java
コマンド:
java -classpath .:* -DaccountId=1234 Accounts_PUT_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
Account account = accountResource.putAccount(
Long.valueOf(System.getProperty("accountId")),
new Account() {
{
description = "Goo";
name = "George";
}
});
System.out.println(account);
}
アカウントの削除
次の cURL および Java コマンドを使用して既存のアカウントを削除します。 なお、 1234 は、アカウントのIDに置き換えてください。
Accounts_DELETE_ById.sh
コマンド:
./Accounts_DELETE_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
--request "DELETE" \
--user "test@liferay.com:learn"
Accounts_DELETE_ById.java
コマンド
java -classpath .:* -DaccountId=1234 Accounts_DELETE_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"test@liferay.com", "learn"
).build();
accountResource.deleteAccount(
Long.valueOf(System.getProperty("accountId")));
}
API エクスプローラー には、すべての アカウント サービスとスキーマが表示され、各サービスを試すためのインターフェースがあります。
PostalAddress_POST_ToAccount と PostalAddresses_GET_FromAccountを使用してアカウントの郵便住所を作成および取得します。