コンテンツにスキップ

クエリ

コンテンツ一覧の取得では、クエリパラメータを使って取得するコンテンツを絞り込んだり、並び替えたりできます。利用できるクエリパラメータは次の5つです。

  • filter: 取得するコンテンツの絞り込み条件
  • select: 取得するプロパティの指定
  • order: 並び順の指定
  • limit: 取得する最大件数
  • skip: スキップする件数

select はコンテンツの取得(1件取得)でも利用できますが、filterorderlimitskip はコンテンツ一覧の取得でのみ利用できます。

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.customOrdersys.raw.firstPublishedAt など sys 配下の項目)

sys に含まれる各項目は、コンテンツのページを参照してください。

select

select は、取得するコンテンツに含めるプロパティを指定します。指定しない場合は、すべてのプロパティが返ります。必要なプロパティだけを指定すると、レスポンスのサイズを抑えられます。

複数のプロパティを指定するには、select[0]select[1] のようにインデックスを増やして指定します。

?select[0]=title&select[1]=slug

id は、select の指定にかかわらず必ず含まれます。

order

order は、取得するコンテンツの並び順を指定します。フィールド名の先頭に - を付けると降順に、付けないと昇順になります。

?order[0]=-sys.createdAt

複数の並び順を指定するには、order[0]order[1] のようにインデックスを増やして指定します。先に指定したものが優先されます。

?order[0]=-sys.customOrder&order[1]=title

order を指定しない場合のデフォルトの並び順は、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