- ガイド
- CDN API・Newt API
利用可能なクエリ
Table of contents
CDN API・Newt APIでは、様々なクエリパラメータを利用できます。
この記事では、利用可能なクエリ・演算子の一覧を紹介します。
また、URLにクエリパラメータを付与する場合の書き方と、SDK を利用する場合の書き方を説明します。
詳細については、以下のリファレンスをご確認ください。
1. 利用可能なクエリは9種類
まず、CDN API・Newt APIで利用できるクエリ一覧について説明します。
利用できるクエリには大きく以下の9種類があります。CDN APIもNewt APIも利用できるクエリは共通です。
名前 | 説明 |
---|---|
Filters | 条件に合致するコンテンツのみ取得する |
Format | HTML形式のデータを取得するか、テキスト形式のデータを取得するか指定する |
Select | 指定したフィールドの情報のみ取得する |
Order | 指定した順番で取得する |
Limit | 返却されるコンテンツの最大件数を指定する |
Skip | 何件のコンテンツをスキップするか指定する |
Depth | 画像フィールド・ファイルフィールド・参照フィールドで、取得するデータの階層を指定する |
And | すべての条件に合致するコンテンツを取得する(複数条件の関係を指定) |
Or | いずれかの条件に合致するコンテンツを取得する(複数条件の関係を指定) |
以下、それぞれについて説明します。
詳細については、Queries のリファレンスに記載があるので、ご確認ください。
1-1. Filters
条件に合致するコンテンツのみ取得します。
2で利用可能なすべての演算子について説明します。
URLの場合
// 書き方
{field}={value}
// 例
slug=hoge
SDKの場合
// 書き方
query: {
field: value
}
// 例
query: {
slug: 'hoge'
}
1-2. Format
フィールドタイプがリッチテキストまたはマークダウンの場合、デフォルトではHTML形式のデータが返されます。Formatクエリを利用して、HTML形式のデータを取得するか、テキスト形式のデータを取得するか、指定します。
fmt
演算子を使用して、text
の値を指定した場合に、テキスト形式のデータが返却されます。それ以外の場合はHTML形式のデータが返却されます。
URLの場合
// 書き方
{field}[fmt]=text
// 例
body[fmt]=text
SDKの場合
// 書き方
query: {
field: {
fmt: 'text'
}
}
// 例
query: {
body: {
fmt: 'text'
}
}
1-3. Select
指定したフィールドの情報のみ取得します。
URLの場合
// 書き方
select={field},{field}
// 例
select=title,slug
SDKの場合
// 書き方
query: {
select: [field, field]
}
// 例
query: {
select: ['title', 'slug']
}
1-4. Order
指定した順番でコンテンツを取得します。
複数の値を指定した場合、左のものから順にソートされます。降順にしたい場合は -
をつけます。
URLの場合
// 書き方
order=-{field},{field}
// 例
order=-priority,_sys.createdAt
SDKの場合
// 書き方
query: {
order: [-field, field]
}
// 例
query: {
order: ['-priority', '_sys.createdAt']
}
1-5. Limit
返却されるコンテンツの最大件数を指定します。
URLの場合
// 書き方
limit={value}
// 例
limit=10
SDKの場合
// 書き方
query: {
limit: value
}
// 例
query: {
limit: 10
}
1-6. Skip
何件のコンテンツをスキップするか指定します。
URLの場合
// 書き方
skip={value}
// 例
skip=10
SDKの場合
// 書き方
query: {
skip: value
}
// 例
query: {
skip: 10
}
1-7. Depth
画像・ファイル・参照フィールドで、取得するデータの階層を指定します。
URLの場合
// 書き方
depth={value}
// 例
depth=2
SDKの場合
// 書き方
query: {
depth: value
}
// 例
query: {
depth: 2
}
1-8. And
指定したすべての条件を満たすコンテンツを取得します。
URLで記載する時は &
で接続します。
SDKで記載する時は query
オブジェクトの中にすべての条件を記載します。
URLの場合
// 例: tagの名称がdevelopersであるコンテンツを作成順で取得する
tag=developers&order=_sys.createdAt
SDKの場合
// 例: tagの名称がdevelopersであるコンテンツを作成順で取得する
query: {
tag: 'developers',
order: ['_sys.createdAt']
}
1-9. Or
いずれかの条件に合致するコンテンツを取得します。
URLで記載する時は、条件を ()
で囲み、各条件を ;
で区切ります。
SDKで記載する時は query
オブジェクトの中に or
オブジェクトを作成し、配列で条件を記載します。
URLの場合
// 例: slugがdevelopers、またはtagがdevelopersであるコンテンツを取得する
[or]=(slug=developers;tag=developers)
SDKの場合
// 例: slugがdevelopers、またはtagがdevelopersであるコンテンツを取得する
query: {
or: [
{
slug: 'developers',
},
{
tag: 'developers',
},
],
}
また、OR条件と他の条件をANDで接続することも可能です。
URLの場合
// 例: slugがdevelopers、またはtagがdevelopersであるコンテンツを取得する。かつ作成順で取得する
[or]=(slug=developers;tag=developers)&order=_sys.createdAt
SDKの場合
// 例: slugがdevelopers、またはtagがdevelopersであるコンテンツを取得する。かつ作成順で取得する
query: {
or: [
{
slug: 'developers',
},
{
tag: 'developers',
},
],
order: ['_sys.createdAt']
}
2. Filtersで利用できる演算子は11種類
上記で説明した Filters
では、さらに11種類の演算子を利用できます。
CDN APIもNewt APIも利用できる演算子は共通です。
演算子 | 説明 |
---|---|
なし | 指定した値に一致するコンテンツを取得する |
ne | 指定した値に一致するコンテンツを除外する |
match | 指定した値を含むコンテンツを取得する |
in | 指定した要素のどれかに一致するコンテンツを取得する |
nin | 指定した要素のどれかに一致するコンテンツを除外する |
all | 指定した要素のすべてを含むコンテンツを取得する |
exists | 指定したフィールドを持つ(持たない)コンテンツを取得する |
gt | 指定した値より大きいコンテンツを取得する |
gte | 指定した値以上のコンテンツを取得する |
lt | 指定した値未満のコンテンツを取得する |
lte | 指定した値以下のコンテンツを取得する |
以下、それぞれについて説明します。
詳細については、Queries のリファレンスに記載があるので、ご確認ください。
2-1. 演算子なし
指定した値に一致するコンテンツを取得します。
URLの場合
// 書き方
{field}={value}
// 例
slug=hoge
SDKの場合
// 書き方
query: {
field: value
}
// 例
query: {
slug: 'hoge'
}
2-2. ne
指定した値に一致するコンテンツを除外します。
URLの場合
// 書き方
{field}[ne]={value}
// 例
slug[ne]=fuga
SDKの場合
// 書き方
query: {
field: {
ne: value
}
}
// 例
query: {
slug: {
ne: 'fuga'
}
}
2-3. match
指定した値を含むコンテンツを取得します。
URLの場合
// 書き方
{field}[match]={value}
// 例
body[match]=abc
SDKの場合
// 書き方
query: {
field: {
match: value
}
}
// 例
query: {
body: {
match: 'abc'
}
}
2-4. in
指定した要素のどれかに一致するコンテンツを取得します。
URLの場合
// 書き方
{field}[in]={value},{value}
// 例
tag[in]=developers,community
SDKの場合
// 書き方
query: {
field: {
in: [value, value]
}
}
// 例
query: {
tag: {
in: ['developers', 'community']
}
}
2-5. nin
指定した要素のどれかに一致するコンテンツを除外します。
URLの場合
// 書き方
{field}[nin]={value},{value}
// 例
tag[nin]=engineer,designer
SDKの場合
// 書き方
query: {
field: {
nin: [value, value]
}
}
// 例
query: {
tag: {
nin: ['engineer', 'designer']
}
}
2-6. all
指定した要素のすべてを含むコンテンツを取得します。
URLの場合
// 書き方
{field}[all]={value},{value}
// 例
tag[all]=update,feature
SDKの場合
// 書き方
query: {
field: {
all: [value, value]
}
}
// 例
query: {
tag: {
all: ['update', 'feature']
}
}
2-7. exists
指定したフィールドを持つ(持たない)コンテンツを取得します。
trueを指定した場合は該当のフィールドを持つコンテンツを、falseを指定した場合は該当のフィールドを持たないコンテンツを取得します。
URLの場合
// 書き方
{field}[exists]={value}
// 例
thumbnail[exists]=true
SDKの場合
// 書き方
query: {
field: {
exists: true
}
}
// 例
query: {
thumbnail: {
exists: true
}
}
2-8. gt
指定した値より大きいコンテンツを取得します。
URLの場合
// 書き方
{field}[gt]={value}
// 例
_sys.createdAt[gt]=2022
SDKの場合
// 書き方
query: {
field: {
gt: value
}
}
// 例
query: {
'_sys.createdAt': {
gt: '2022'
}
}
2-9. gte
指定した値以上のコンテンツを取得します。
URLの場合
// 書き方
{field}[gte]={value}
// 例
_sys.createdAt[gte]=2023
SDKの場合
// 書き方
query: {
field: {
gte: value
}
}
// 例
query: {
'_sys.createdAt': {
gte: '2023'
}
}
2-10. lt
指定した値未満のコンテンツを取得します。
URLの場合
// 書き方
{field}[lt]={value}
// 例
_sys.createdAt[lt]=2023
SDKの場合
// 書き方
query: {
field: {
lt: value
}
}
// 例
query: {
'_sys.createdAt': {
lt: '2023'
}
}
2-11. lte
指定した値以下のコンテンツを取得します。
URLの場合
// 書き方
{field}[lte]={value}
// 例
_sys.createdAt[lte]=2022
SDKの場合
// 書き方
query: {
field: {
lte: value
}
}
// 例
query: {
'_sys.createdAt': {
lte: '2022'
}
}
3. クエリパラメータの仕様上の制限
クエリをかけられないもの
以下に対しては、Filtersによる絞り込み・Formatによる取得形式の変更・Selectによる取得情報の制限・Orderによる並び順の指定は行えません。ご注意ください。
- 参照フィールド・画像フィールド・ファイルフィールドの_id以外の項目
- マルチタイプフィールド
- カスタムフィールドタイプを利用したフィールド