クエリ
一覧取得(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 で指定できる条件は、リソースによって異なります。
- コンテンツ:
idやsys、ユーザー定義のフィールドで絞り込める - コレクション:
idによる絞り込みのみ - カスタムフィールドタイプ:
idとuidによる絞り込みのみ
一部の一覧取得では、対象を指定する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です。