ブログ画像IDの取得がヘッドレスAPIで異なる

問題

  • 再現の手順
    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"
    }
    6 では、このリクエストを実行してください:
    Get /v1.0/sites/{site-id}/blog-postings under headless-delivery/v1.0

    このリクエストを実行すると、次のようなレスポンス・ボディを受け取る:image-id "に注意してください。

    "image": { 
    "caption": "<p>Caption</p>",
    "contentUrl": "/documents/d/guest/import-png-1",
    "imageId": 34950
    },
    実際の結果 ステップ5とステップ6では、ブログ画像IDの取得方法が異なります。
    期待される結果 以下の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 カラムをチェックすることでも確認できる。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています