→filtersパラメータを使用することで絞り込みが可能です
繰り返しフィールドはfiltersパラメータを使用し{フィールドID}.{カスタムフィールドID}.{絞り込みに用いるフィールドID}[条件]{VALUE}
とすることで繰り返しフィールド内の値を対象に絞り込みが可能です。
繰り返しフィールド内のフィールドを対象に絞り込みをする場合、利用できるfiltersパラメータの条件に制限があります。
利用できる条件はドキュメントを参照してください。
リクエスト例
具体的には、以下のようにリクエストすることで絞り込むことが可能です。
client
.get({
endpoint: 'event',
queries: { filters: 'timeTable.details.actors[contains]山田太郎' }
})
.then((res) => console.log(res));
実装例
イベントのタイムスケジュールを管理しているサイトを例にしてスキーマ設定から繰り返しフィールドでの絞り込みの方法まで紹介します。
タイムスケジュールは繰り返しフィールドで設定し、以下の情報を設定します。
- 出演者
- 開始時間
- 終了時間
想定する絞り込みの例
繰り返しフィールドで設定した出演者に「山田太郎」が含まれているコンテンツを絞り込む。
1. カスタムフィールドの基本情報を設定
2. カスタムフィールドのAPIスキーマを定義
今回はイベントのタイムスケジュールを管理するサイトを想定しているので以下のスキーマを設定します。
- 出演者(テキストフィールド)
- 開始時間(セレクトフィールド)
- 終了時間(セレクトフィールド)
3. 作成したカスタムフィールドを繰り返しフィールドで利用
「API設定」>「APIスキーマ」に移動し、フィールドの種類から「繰り返し」を選択します。
先ほど作成したカスタムフィールド(タイムテーブル詳細)を選択
4. コンテンツにタイムテーブルの情報を入力して保存する
5. filtersパラメータを使用して絞り込む
出演者に「山田太郎」が含まれているコンテンツを絞り込みたいので以下のリクエストURLでクエリを実行します。
https://{SERVICE_ID}.microcms.io/api/v1/event?filters=timeTable.details.actors[contains]山田太郎