問題
-
再現の手順
1. Liferay DXP 7.4 を起動します。
2. コンテンツ & データ > ブログ に移動する。
3. ブログをひとつ作る。
4. localhost:8080/o/apiに移動する。
5. BlogPostingImageでこのリクエストを実行する:Get /v1.0/sites/{site-id}/blog-postings-images
このリクエストを実行すると、次のようなレスポンス・ボディを受け取る:id "に注意。
{
"contentUrl": "/documents/34933/34935/Import.png/5a907d7d-df27-c701-5b08-8460e3daecdd?version=1.0&t=1688469903434",
"encodingFormat": "image/png",
"fileExtension": "png",
"id": 34936,
"sizeInBytes": 42586,
"title": "Import.png"
}Get /v1.0/sites/{site-id}/blog-postings under headless-delivery/v1.0
このリクエストを実行すると、次のようなレスポンス・ボディを受け取る:image-id "に注意してください。
"image": {
実際の結果 ステップ5とステップ6では、ブログ画像IDの取得方法が異なります。
"caption": "<p>Caption</p>",
"contentUrl": "/documents/d/guest/import-png-1",
"imageId": 34950
},
期待される結果 以下のAPIからブログコンテンツを取得することで、ブログ画像idが同じになること:
Get /v1.0/sites/{site-id}/blog-posting-images.
get /v1.0/sites/{site-id}/blog-postings under headless-delivery/v1.0.
Environment
- Liferay DXP 7.4
解決策
-
ヘッドレスAPIによる'id'と'imageid'の取得は、製品の期待される動作です。 その理由は、以下のAPIでは異なる要素を取得しているからだ:
Get /v1.0/sites/{site-id}/blog-posting-images
Get /v1.0/sites/{site-id}/blog-postings -
(Get /v1.0/sites/{site-id}/blog-posting-images) リクエストについて:
-
blog-posting-images
リクエストは、ブログのリポジトリにアップロードされた画像のリストを表示します。つまり、BLOGSリポジトリに送信されたすべてのオリジナル画像を意味します。 - この場合、 id は、ブログ・ポートレットの画像タブで見ることができるファイルのIDです。
- また、
dlfilentry
テーブルのfilentryid
カラムをチェックすることでも確認できる。
-
-
(Get /v1.0/sites/{site-id}/blog-postings) リクエストについて:
-
blog-posting
はブログ・エントリーのリストを表示する。 - この場合、 画像ID は、各ブログエントリーのカバー画像として使用される画像のIDです。 これは、BLOGSレポジトリに更新されたオリジナル画像のトリミングコピーである。
- また、
blogsentry
テーブルのcoverimagefileentryid
カラムをチェックすることでも確認できる。
-
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン