クエリ
コンテンツ一覧の取得では、クエリパラメータを使って取得するコンテンツを絞り込んだり、並び替えたりできます。利用できるクエリパラメータは次の5つです。
filter: 取得するコンテンツの絞り込み条件select: 取得するプロパティの指定order: 並び順の指定limit: 取得する最大件数skip: スキップする件数
select はコンテンツの取得(1件取得)でも利用できますが、filter、order、limit、skip はコンテンツ一覧の取得でのみ利用できます。
filter
filter は、取得するコンテンツの絞り込み条件を指定します。条件は filter[フィールド][演算子]=値 の形式で指定します。指定できる演算子は、このページの演算子を参照してください。
たとえば、slug フィールドが post-1 のコンテンツだけを取得するには、次のように指定します。
?filter[slug][$eq]=post-1複数の条件を指定すると、すべての条件を満たすコンテンツ(AND条件)だけが取得されます。
?filter[slug][$eq]=post-1&filter[sys.customOrder][$gte]=10絞り込みに使えるフィールド
filter には、次のフィールドを指定できます。
- モデルで定義したフィールドのID(
slugなど) - コンテンツの
id - システム情報(
sys.customOrderやsys.raw.firstPublishedAtなどsys配下の項目)
sys に含まれる各項目は、コンテンツのページを参照してください。
select
select は、取得するコンテンツに含めるプロパティを指定します。指定しない場合は、すべてのプロパティが返ります。必要なプロパティだけを指定すると、レスポンスのサイズを抑えられます。
複数のプロパティを指定するには、select[0]、select[1] のようにインデックスを増やして指定します。
?select[0]=title&select[1]=slugid は、select の指定にかかわらず必ず含まれます。
order
order は、取得するコンテンツの並び順を指定します。フィールド名の先頭に - を付けると降順に、付けないと昇順になります。
?order[0]=-sys.createdAt複数の並び順を指定するには、order[0]、order[1] のようにインデックスを増やして指定します。先に指定したものが優先されます。
?order[0]=-sys.customOrder&order[1]=titleorder を指定しない場合のデフォルトの並び順は、CDN APIとPreview APIで異なります。
- CDN API:
-sys.raw.firstPublishedAt(初回公開日時の降順) - Preview API:
-sys.raw.createdAt(作成日時の降順)
limit
limit は、一度に取得するコンテンツの最大件数を指定します。1から1000までの整数を指定でき、デフォルト値は100です。
?limit=50条件に合致するコンテンツの総数は、レスポンスの total で確認できます。総数が limit を超える場合は、skip をずらしながら複数回リクエストすることで、すべてのコンテンツを取得できます。
skip
skip は、取得をスキップするコンテンツの件数を指定します。0以上の整数を指定でき、デフォルト値は0です。limit と組み合わせて、ページングに利用します。
?skip=100&limit=100演算子
filter では、次の演算子を利用できます。
| 演算子 | 概要 |
|---|---|
| $eq | 値が一致する |
| $ne | 値が一致しない |
| $gt | 値より大きい |
| $gte | 値以上である |
| $lt | 値より小さい |
| $lte | 値以下である |
| $in | 指定した複数の値のいずれかに一致する |
$in は、複数の値を配列で指定します。
?filter[id][$in][0]=xxx&filter[id][$in][1]=yyy