外部参照コードの使用
Liferay DXP/ポータル 7.4 以上
Liferay のヘッドレス API エンドポイントの多くは、外部参照コード (ERC) をサポートしています。 ERC フィールドは、幅広いシナリオで役立ちます。 たとえば、コンテンツを Liferay に移行する場合、別のシステムからの一意の参照 ID を ERC フィールドに保持できます。 または、ERC を使用して、サイト コンテンツに人間が読めるキーを設定します。 たとえば、Liferay は作成されたブログ投稿ごとに一意の ID を割り当てますが、参照しやすくするために人間が読めるキーを割り当てることもできます。
Liferay DXP 2025.Q3+ からは、 {siteId} を使用するすべての API エンドポイントは、サイトのキーまたは外部参照コードでも機能します。 値が競合する場合は、次の順序で解決されます。
- サイトキー
- サイトID
- サイト外部参照コード
各 ERC は一意である必要があり、同じスコープ内の別のエンティティで同じ ERC を使用することはできません。 たとえば、同じサイト上のブログ投稿とドキュメントに同じ ERC を設定することはできません。 保存時に、 重複エントリ エラーが表示されます。
ERC を URL パラメータとして使用する場合、 予約文字 をエンコードする必要があります。 これには、エンドポイント URL でスラッシュ (/) を含む外部参照コードを使用することも含まれます。
ブログ投稿 ERC の例
ERC を使用してブログ投稿を作成し、アクセスします。
-
サイトの IDをメモします。
-
新しいブログ投稿を作成するには、次の curl コマンドを実行します。
{siteId}をサイトの ID に置き換えます。curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/headless-delivery/v1.0/sites/{siteId}/blog-postings" \ -d "{\"articleBody\": \"Foo\", \"externalReferenceCode\": \"blog_post_able\", \"headline\": \"Able\"}" \ -u "test@liferay.com:learn"出力には、新しいブログ投稿が作成されたことが示されています。
... "alternativeHeadline" : "", "articleBody" : "Foo", "creator" : { "additionalName" : "", "contentType" : "UserAccount", "familyName" : "Test", "givenName" : "Test", "id" : 20123, "name" : "Test Test" }, "customFields" : [ ], "dateCreated" : "2023-09-21T21:21:48Z", "dateModified" : "2023-09-21T21:21:48Z", "datePublished" : "2023-09-21T21:21:00Z", "description" : "Foo", "encodingFormat" : "text/html", "externalReferenceCode" : "blog_post_able", "friendlyUrlPath" : "able", "headline" : "Able", "id" : 42617, "keywords" : [ ], "numberOfComments" : 0, "relatedContents" : [ ], "renderedContents" : [ ], "siteId" : 20119, "taxonomyCategoryBriefs" : [ ] ... -
このブログ投稿は、ID または ERC で参照できるようになりました。 たとえば、ID でブログ投稿を取得します。
curl \ "http://localhost:8080/o/headless-delivery/v1.0/blog-postings/42617" \ -u "test@liferay.com:learn"または、ERC でブログ投稿を取得します。
curl \ "http://localhost:8080/o/headless-delivery/v1.0/sites/20119/blog-postings/by-external-reference-code/blog_post_able" \ -u "test@liferay.com:learn"注意: ERC によるブログ投稿のこの GET メソッドには、サイト ID (例:
20119) と ERC (例:blog_post_able) が必要です。
外部参照コードをサポートするさまざまな API エンドポイントを確認するには、 API エクスプローラー をご覧ください。