アカウントAPIの基本¶
対応可能:Liferay DXP/Portal 7.4以降
アプリケーションメニューから アカウント を管理することができますが、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_に変更します。
次に、以下の手順を実行します。
Accounts API Basics をダウンロードし、解凍してください。
curl https://learn.liferay.com/dxp/latest/ja/users-and-permissions/developer-guide/liferay-t5p9.zip -O
unzip liferay-t5p9.zip
cURLスクリプトを使用して、インスタンスに新しいAccountを追加します。 コマンドラインで、
curl
フォルダに移動します。Account_POST_ToInstance.sh
スクリプトを実行します。./Account_POST_ToInstance.sh
JSONレスポンスでは、新しいAccountが追加されたことを示しています。
"description" : "Foo", "domains" : [ ], "externalReferenceCode" : "", "id" : 39302, "name" : "Able", "numberOfUsers" : 0, "organizationIds" : [ ], "parentAccountId" : 0, "status" : 0, "type" : "business"
グローバルメニュー → [アプリケーション] → [Accounts] に移動します。 新しいアカウントが追加されたことを確認してください。
RESTサービスは、Javaクライアントを使って呼び出すこともできます。
curl
フォルダから、java
フォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。javac -classpath .:* *.java
Account_POST_ToInstance.java
クラスを以下のコマンドで実行します。java -classpath .:* Account_POST_ToInstance
cURLコマンドの検証¶
Account_POST_ToInstance.sh
スクリプトは、cURLコマンドでRESTサービスを呼び出します。
curl \
-H "Content-Type: application/json" \
-X POST \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts" \
-d "{\"description\": \"Foo\", \"name\": \"Able\"}" \
-u "[email protected]:learn"
コマンドの引数は次のとおりです。
引数 |
説明 |
---|---|
|
リクエストボディのフォーマットがJSONであることを示します。 |
|
指定されたエンドポイントで起動するHTTPメソッド |
|
RESTサービスのエンドポイント |
|
お客様が掲載を希望するデータ |
|
基本的な認証情報 |
注釈
ここでは、デモのためにベーシック認証を使用しています。 本番環境では、 OAuth2でユーザーを認証する必要があります。 OAuth2を利用したReactアプリケーションのサンプルは、OAuth2を使ってユーザーを認証するをご参照ください。
他のcURLコマンドも同様のJSON引数を使用します。
Javaクラスを調べる¶
Account_POST_ToInstance.java
クラスは、Account関連のサービスを呼び出してアカウントを追加します。
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"[email protected]", "learn"
).build();
Account account = accountResource.postAccount(
new Account() {
{
description = "Foo";
name = "Fox";
}
});
System.out.println(account);
}
このクラスは、次の3行のコードのみを使用してRESTサービスを呼び出します。
行(省略形) |
説明 |
---|---|
|
|
|
ベーシック認証を指定し、 |
|
|
プロジェクトには、依存関係としてcom.liferay.headless.admin.user.client.jar
ファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/api
でインストール先のAPIエクスプローラーで確認できます。
注釈
main
メソッドのコメントでは、クラスの実行を実演しています。
他の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" \
-u "[email protected]: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(
"[email protected]", "learn"
).build();
Page<Account> page = accountResource.getAccountsPage(
null, null, Pagination.of(1, 2), null);
System.out.println(page);
}
インスタンスの アカウント
オブジェクトがJSONで表示されます。
アカウントの取得¶
以下のcURLまたはJavaコマンドで特定のアカウントを取得します。
Tip
インスタンスのアカウントIDを取得するには、Accounts_GET_FromInstance.[java|sh]を使用します。
Account_GET_ById.sh¶
コマンド:
./Account_GET_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
-u "[email protected]:learn"
Account_GET_ById.java¶
コマンド:
java -classpath .:* -DaccountId=1234 Account_GET_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"[email protected]", "learn"
).build();
System.out.println(
accountResource.getAccount(
Long.valueOf(System.getProperty("accountId"))));
}
Account
フィールドはJSONで表示されます。
アカウントへのパッチ適用¶
以下のcURLおよびJavaコマンドで、既存のAccountの部分編集を行います。 なお、 1234
は、アカウントのIDに置き換えてください。
Account_PATCH_ById.sh¶
コマンド:
./Account_PATCH_ById.sh 1234
コード:
curl \
-H "Content-Type: application/json" \
-X PATCH \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
-d "{\"description\": \"Bar\"}" \
-u "[email protected]:learn"
Account_PATCH_ById.java¶
コマンド:
java -classpath .:* -DaccountId=1234 Account_PATCH_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"[email protected]", "learn"
).build();
Account account = accountResource.patchAccount(
Long.valueOf(System.getProperty("accountId")),
new Account() {
{
description = "Bar";
}
});
System.out.println(account);
}
アカウントの作成¶
以下のcURLとJavaコマンドで、既存のAccountを完全に上書きします。 なお、 1234
は、アカウントのIDに置き換えてください。
Account_PUT_ById.sh¶
コマンド:
./Account_PUT_ById.sh 1234
コード:
curl \
-H "Content-Type: application/json" \
-X PUT \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
-d "{\"description\": \"Goo\", \"name\": \"Baker\"}" \
-u "[email protected]:learn"
Account_PUT_ById.java¶
コマンド:
java -classpath .:* -DaccountId=1234 Account_PUT_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"[email protected]", "learn"
).build();
Account account = accountResource.putAccount(
Long.valueOf(System.getProperty("accountId")),
new Account() {
{
description = "Goo";
name = "George";
}
});
System.out.println(account);
アカウントの削除¶
以下のcURLおよびJavaコマンドで既存のAccountを削除します。 なお、 1234
は、アカウントのIDに置き換えてください。
Account_DELETE_ById.sh¶
コマンド:
./Account_DELETE_ById.sh 1234
コード:
curl \
-X DELETE \
"http://localhost:8080/o/headless-admin-user/v1.0/accounts/${1}" \
-u "[email protected]:learn"
Account_DELETE_ById.java¶
コマンド
java -classpath .:* -DaccountId=1234 Account_DELETE_ById
コード:
public static void main(String[] args) throws Exception {
AccountResource.Builder builder = AccountResource.builder();
AccountResource accountResource = builder.authentication(
"[email protected]", "learn"
).build();
accountResource.deleteAccount(
Long.valueOf(System.getProperty("accountId")));
}
APIエクスプローラーには、アカウント
のすべてのサービスとスキーマが一覧表示され、各サービスを試すためのインターフェースがあります。