User Management APIs
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

アカウント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に変更します。

次に、以下の手順に従います。

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

    curl https://resources.learn.liferay.com/examples/liferay-t5p9.zip -O
    
    unzip liferay-t5p9.zip
    
  2. cURL スクリプトを使用して、インスタンスに新しいアカウントを追加します。 コマンドラインで、curlフォルダに移動します。 Accounts_POST_ToInstance.sh スクリプトを実行します。

    ./Accounts_POST_ToInstance.sh
    

    JSONのレスポンスには、新しいアカウントが追加されたことが示されています。

    {
      "description" : "Foo",
      "domains" : [ ],
      "externalReferenceCode" : "",
      "id" : 39302,
      "name" : "Able",
      "numberOfUsers" : 0,
      "organizationIds" : [ ],
      "parentAccountId" : 0,
      "status" : 0,
      "type" : "business"
    }
    
  3. グローバル メニューアプリケーションアカウントに移動します。 新しいアカウントが追加されたことを確認します。

    新しいアカウントが追加されたことを確認します。

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

    javac -classpath .:* *.java
    
  5. 次のコマンドで 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+カスタムフィールド
  • dateCreated
  • dateModified
  • name
  • status
  • organizationIds
  • type
フィルタークエリ説明
name eq 'Foo'アカウント名は ‘Foo'と等しくなければなりません
customFields/orgSize eq '100.0'orgSize という名前のカスタムフィールドは 100 です
ソートクエリ説明
dateModified:descdateModified で降順で並べ替え
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_ToAccountPostalAddresses_GET_FromAccountを使用してアカウントの郵便住所を作成および取得します。