Documentation

組織APIの基本

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

組織を追加する

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

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

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

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

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

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

    ./Organization_POST_ToInstance.sh
    

    JSONレスポンスに、新しい組織が追加されたことが表示されます。

    "comment" : "",
    "customFields" : [ ],
    "dateCreated" : "2022-05-19T17:38:19Z",
    "dateModified" : "2022-05-19T17:38:19Z",
    "externalReferenceCode" : "",
    "id" : "40922",
    "keywords" : [ ],
    "location" : { },
    "name" : "Able",
    "numberOfAccounts" : 0,
    "numberOfOrganizations" : 0,
    "numberOfUsers" : 0,
    "organizationContactInformation" : {
       "emailAddresses" : [ ],
       "postalAddresses" : [ ],
       "telephones" : [ ],
       "webUrls" : [ ]
    
  3. Global MenuControl PanelUser and Organizations に移動します。 [Organizations] タブをクリックします。 新しい組織が追加されたことを確認します。

    新しい組織が追加されたことを確認します。

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

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

    java -classpath .:* Organization_POST_ToInstance
    

cURLコマンドの検証

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

curl \
	-H "Content-Type: application/json" \
	-X POST \
	"http://localhost:8080/o/headless-admin-user/v1.0/organizations" \
	-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/organizations"

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

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

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

-u "test@liferay.com:learn"

基本的な認証情報

注釈

ここでは、デモのためにベーシック認証を使用しています。 本番環境では、 OAuth2 を使ってユーザーを認証する必要があります。

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

Javaクラスを調べる

Organization_POST_ToInstance.java クラスは、Organization 関連サービスを呼び出して、組織を追加します。

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	Organization organization = organizationResource.postOrganization(
		new Organization() {
			{
				name = "Dog";
			}
		});

	System.out.println(organization);
}

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

行(省略形)

説明

OrganizationResource.Builder builder = ...

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

OrganizationResource organizationResource = builder.authentication(...).build();

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

Organization organization = organizationResource.postOrganization(...);

organizationResource.postOrganization メソッドを呼び出し、post にデータを渡す。

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

注釈

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

他の例のJavaクラスは、これと似ていますが、異なる OrganizationResource メソッドを呼び出します。

重要

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

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

インスタンスから組織を取得する

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

Organizations_GET_FromInstance.sh

コマンド:

./Organizations_GET_FromInstance.sh

コード:

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

Organizations_GET_FromInstance.java

コマンド:

java -classpath .:* Organizations_GET_FromInstance

コード:

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	Page<Organization> page = organizationResource.getOrganizationsPage(
		null, null, null, Pagination.of(1, 2), null);

	System.out.println(page);
}

Instance の Organization オブジェクトは、JSON で表示されます。

組織を持つ

以下のcURLまたはJavaコマンドで、特定のOrganizationを取得します。

Tip

インスタンスの Organization ID を取得するには、 Organizations_GET_FromInstance.[java|sh] を使用します。

Organization_GET_ById.sh

コマンド:

./Organization_GET_ById.sh 1234

コード:

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

Organization_GET_ById.java

コマンド:

java -classpath .:* -DorganizationId=1234 Organization_GET_ById

コード:

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	System.out.println(
		organizationResource.getOrganization(
			String.valueOf(System.getProperty("organizationId"))));
}

組織 フィールドはJSONで表示されます。

組織のパッチ

以下のcURLとJavaコマンドで、既存の組織の部分編集を行います。 1234 を組織IDに置き換えてください。

組織名_PATCH_ById.sh

コマンド:

./Organization_PATCH_ById.sh 1234

コード:

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

Organization_PATCH_ById.java

コマンド:

java -classpath .:* -DorganizationId=1234 Organization_PATCH_ById

コード:

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	Organization organization = organizationResource.patchOrganization(
		String.valueOf(System.getProperty("organizationId")),
		new Organization() {
			{
				name = "Easy";
			}
		});

	System.out.println(organization);
}

組織を置く

以下のcURLとJavaのコマンドで、既存のOrganizationを完全に上書きします。 1234 を組織IDに置き換えてください。

組織名_PUT_ById.sh

コマンド:

./Organization_PUT_ById.sh 1234

コード:

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

Organization_PUT_ById.java

コマンド:

java -classpath .:* -DorganizationId=1234 Organization_PUT_ById

コード:

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	Organization organization = organizationResource.putOrganization(
		String.valueOf(System.getProperty("organizationId")),
		new Organization() {
			{
				name = "Fox";
			}
		});

	System.out.println(organization);
}

組織を削除する

以下のcURLとJavaのコマンドで、既存の組織を削除します。 1234 を組織IDに置き換えてください。

組織名_DELETE_ById.sh

コマンド:

./Organization_DELETE_ById.sh 1234

コード:

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

Organization_DELETE_ById.java

コマンド

java -classpath .:* -DorganizationId=1234 Organization_DELETE_ById

コード:

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

	OrganizationResource organizationResource = builder.authentication(
		"[email protected]", "learn"
	).build();

	organizationResource.deleteOrganization(
		String.valueOf(System.getProperty("organizationId")));
}

API Explorer には、 Organization のすべてのサービスとスキーマが表示され、各サービスを試用できるインターフェイスを備えています。