メインコンテンツまでスキップ

ファイルの項目でファイル容量をレスポンスに追加するにはどうしたら良いですか?

後処理の出力変換リストを使う方法と、後処理にカスタム処理を設定する方法があります。 以下を参考に設定してください。

出力変換リストを使う方法

エンドポイントの後処理に設定

Topics::listのエンドポイントの後処理に以下の設定を追加します。

備考

以下の設定はファイルの項目にfilesのslugを設定しているTopics::listのエンドポイントを前提として書いています。
ご自身の設定に合わせて調整ください。

項目設定
実行内容出力変換リスト
操作コピーする
項目list.files.url
新しい項目file_size
処理FileSize

Image from Gyazo

カスタム処理を設定する方法

対象のファイルサイズを取得してレスポンスに追加するカスタム処理を作成し、エンドポイントの後処理に設定します。
ファイルサイズの取得にはrcms_file_sizeのSmartyプラグインを利用します。

カスタム処理を作成

カスタム処理編集の画面から以下のコードを設定したカスタム処理を作成します。

備考

以下のコードはファイルの項目にfilesのslugを設定しているTopics::listのエンドポイントを前提として書いています。
ご自身の設定に合わせて調整ください。

{foreach from=$json.list key=key item=details}
{if isset($details.files) && $details.files.url_org}
{assign var='file_url' value=$details.files.url_org}
{assign var='file_size' value=$file_url|rcms_file_size}
{assign_array_set var="json.list.$key.files" key="file_size" value=$file_size from=$json.list.$key.files}
{/if}
{/foreach}

{assign var='processed_json' value=$json}

エンドポイントの後処理に設定

追加したカスタム処理を対象のエンドポイントの後処理に設定します。

Image from Gyazo

動作確認

エンドポイントのレスポンスをSwagger UIで確認すると、以下のように、filesの項目にfile_sizeのレスポンスが追加されていることが分かります。

Image from Gyazo

注意

「ファイル(GCSにアップロード)」「ファイル(S3にアップロード)」の項目には対応しておりませんのでご注意ください。

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。