コンテンツにスキップ

クエリ

一覧取得(list)の操作では、リクエストボディにクエリパラメータを指定して、取得するデータを絞り込んだり並び替えたりできます。CDN APIやPreview APIではURLのクエリ文字列で指定しますが、Management APIではJSON形式のリクエストボディで指定します。

絞り込みや並び替えを細かく指定できるのは、主にコンテンツの一覧取得です。ほかのリソースで指定できるパラメータは限られます。

指定できるパラメータ

指定できるパラメータは、リソースによって異なります。

リソース指定できるパラメータ
コンテンツfilter / select / order / skip / limit
コレクションfilter / skip / limit
モデルskip / limit
カスタムフィールドタイプfilter / skip / limit
アセットskip / limit

filter で指定できる条件は、リソースによって異なります。

  • コンテンツ: idsys、ユーザー定義のフィールドで絞り込める
  • コレクション: id による絞り込みのみ
  • カスタムフィールドタイプ: iduid による絞り込みのみ

一部の一覧取得では、対象を指定するIDが必要です。コンテンツは modelId、モデルとカスタムフィールドタイプは collectionId を指定します。

各操作で指定できるパラメータの詳細は、Craft Cross CMSのAPIリファレンスも参照してください。

filter

filter は、取得するコンテンツの絞り込み条件を指定します。次の説明は、コンテンツの一覧取得を対象とします。フィールドと演算子を組み合わせたオブジェクトで指定します。

たとえば、slug フィールドが post-1 のコンテンツだけを取得するには、次のように指定します。

{
"filter": {
"slug": { "$eq": "post-1" }
}
}

複数の条件を指定すると、すべての条件を満たすデータ(AND条件)だけが取得されます。

指定できる演算子

filter では、次の演算子を利用できます。

演算子概要
$eq値が一致する
$ne値が一致しない
$gt値より大きい
$gte値以上である
$lt値より小さい
$lte値以下である
$in指定した複数の値のいずれかに一致する

$in は、複数の値を配列で指定します。

{
"filter": {
"id": { "$in": ["xxx", "yyy"] }
}
}

select

select は、取得するコンテンツに含めるプロパティを指定します。コンテンツの一覧取得で利用できます。指定しない場合は、すべてのプロパティが返ります。

{
"select": ["title", "slug"]
}

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

order

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

{
"order": ["-sys.createdAt"]
}

skip

skip は、取得をスキップする件数を指定します。0以上の整数を指定でき、デフォルト値は0です。limit と組み合わせて、ページングに利用します。

limit

limit は、一度に取得する最大件数を指定します。デフォルト値は100です。