コンテンツ一覧を取得する(GET /contents)
基本情報
指定した条件に合うコンテンツを配列形式で一覧取得します。
デフォルトでは全モデルのコンテンツを混合して取得します。特定のモデルに絞り込みたい場合は、 model パラメータにモデルのLUIDを指定してください。
※ パスパラメータにモデル名( /contents/news など)を指定することはできません。
GET/v1/contents
https://cms-api.nilto.com/v1/contents
リクエスト
概要
演算子を用いて、コンテンツを特定の条件で絞り込むことができます。
フィールド種類ごとのフィルター
ユーザーが独自に定義したフィールドに対して、フィールドの種類によって利用できる演算子が異なります。
フィールド種類 | [eq] | [in] | [lt] | [lte] | [gt] | [gte] | [contains] | [has] |
|---|---|---|---|---|---|---|---|---|
フレキシブルテキスト | - | - | - | - | - | - | 文字列 | - |
1行テキスト | 文字列 | 文字列 | - | - | - | - | 文字列 | - |
複数行テキスト | 文字列 | 文字列 | - | - | - | - | 文字列 | - |
ブーリアン | true/false | - | - | - | - | - | - | - |
単一選択 | 文字列 | 文字列 | - | - | - | - | - | - |
複数選択 | - | - | - | - | - | - | - | 文字列 |
日時 | - | - | 日時 | 日時 | 日時 | 日時 | - | - |
メディア | - | - | - | - | - | - | - | - |
コンテンツ参照 ※ | コンテンツID | コンテンツID | - | - | - | - | - | - |
繰り返し ※ | - | - | - | - | - | - | - | - |
組み合わせ | - | - | - | - | - | - | - | - |
フィールドセット ※ | - | - | - | - | - | - | - | - |
高度なフィルター指定
参照しているコンテンツのフィールドに対して条件設定する場合、 . に続けて参照先コンテンツのフィールドを指定することができます。
例1: 参照しているコンテンツ内の1行テキストフィールドに対して完全一致条件を指定
/v1/contents/?content_reference.singleline_field[eq]=foobar例2: 参照しているコンテンツ内の日時テキストフィールドに対して条件指定
/v1/contents/?content_reference.datetime_field[gt]=2023-01-23T04:00:00+09:00フィールドセット内部のフィールドに対して条件設定する場合、 . に続けてフィールドを指定することができます。
例1: フィールドセット内の1行テキストフィールドに対して完全一致条件を指定
/v1/contents/?field_set.singleline_field[eq]=foobar例2: フィールドセット内の日時テキストフィールドに対して条件指定
/v1/contents/?field_set.datetime_field[gt]=2023-01-23T04:00:00+09:00繰り返しフィールドに対して、繰り返し内で条件に合致するフィールドを1件以上含んでいるか否かを条件指定し、絞り込むことができます。
条件設定する場合、 . に続けてフィールドを指定します。
繰り返しフィールドに対する条件設定は [eq] フィルターのみ対応しています。
例1: 繰り返しフィールド内の1行テキストフィールドに対して完全一致条件を指定
/v1/contents/?repeat.singleline_field[eq]=foobar例2: 繰り返しフィールド内のコンテンツ参照フィールドに対してコンテンツIDを指定
/v1/contents/?repeat.content_reference[eq]=1234567890※ 参照コンテンツ内のフィールドを条件指定することはできません
リクエストパラメータ
X-NILTO-API-KEYX-NILTO-API-KEY | NILTO APIキー。 スペース設定のAPIキー画面で取得することができます。 |
select | string
指定しなかったフィールドはレスポンスに含まれません。 コンテンツ参照フィールド等の階層化されたデータにはドット記法でさらに細かく指定することができます。 |
depth | integer 参照するコンテンツのオブジェクトを取得する深度を指定します。 [注意] |
order | string Example: 並べ替える基準とするフィールドのLUIDを指定します。カンマ区切りで複数指定できます。 省略した場合、デフォルトで作成日( |
limit | integer 取得する件数の上限を指定します(最大100件)。 |
offset | integer 何件目から取得するかを指定します。 |
model | string Example: 取得対象とするモデルのLUIDを指定します。カンマ区切りで複数指定できます。 |
lang | string 取得したいコンテンツの言語を指定します。省略するとメイン言語の内容を取得します。 |
space | string Example: サブスペース機能をご利用中にのみ有効なキーです。 親スペースのLUIDは |
contains | string すべてのテキストフィールド(1行テキスト/複数行テキスト/フレキシブルテキスト)を横断的に検索し、指定した値が含まれるコンテンツを取得します。 |
{field_luid}[format] | string Default: Enum: Example: フレキシブルテキストのデータ形式を指定します。 |
{field_luid}[eq] | string フィールドの内容が指定した値と一致するコンテンツのみ取得します。
|
{field_luid}[in] | string フィールドの値が指定した値のいずれかに一致するコンテンツのみ取得します。
|
{field_luid}[lt] | string Example: フィールドの内容が指定した値より小さいコンテンツのみ取得します。
|
{field_luid}[lte] | string フィールドの内容が指定した値以下のコンテンツのみ取得します。
|
{field_luid}[gt] | string フィールドの内容が指定した値より大きいコンテンツのみ取得します。
|
{field_luid}[gte] | string Example: フィールドの内容が指定した値以上のコンテンツのみ取得します。
|
{field_luid}[contains] | string Example: 指定したフィールドのみを対象に、値が含まれるコンテンツを取得します。カンマ区切りでAND検索になります。
|
{field_luid}[has] | string 複数選択フィールドに対し、指定した値が含まれるコンテンツのみ取得します。
|
リクエスト例
curl -H 'X-NILTO-API-KEY:0000000000000000000000' \
'https://cms-api.nilto.com/v1/contents?model=news&boolean_field[eq]=true'レスポンス
概要
NILTO DeveloperAPI が返すレスポンスデータは、システムで自動設定されるシステムプロパティとユーザーが独自に定義したフィールドプロパティにより構成されます。
{
"total": 34,
"offset": 20,
"limit": 10,
"data": [
{
"_id": 1234567890,
"_model": "news",
"_title": "Hello World",
"_created_at": "2023-01-23T04:50:00Z",
"_updated_at": "2023-01-23T04:50:00Z",
"_published_at": "2023-01-23T04:50:00Z",
"_last_published_at": "2023-01-23T04:50:00Z",
"_status": "published",
"_space": "_parent",
"flexibletext_field": "<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>",
"singleline_field": "foobar",
"boolean_field": true
},
︙
]
}システムプロパティ
APIレスポンスに共通で含まれる、システム管理のプロパティです。
これらのプロパティは _ (アンダースコア) から始まります。
プロパティ名 | 説明 |
|---|---|
_id | コンテンツを一位に識別するための一意なID。 |
_model | コンテンツが属するモデルのLUID。 |
_title | コンテンツのタイトル。モデルに設定された「タイトル用フィールド」の値が自動的に反映されます。 |
_created_at | コンテンツが作成された日時。日時は ISO 8601 形式のUTC(協定世界時)で表現されます。 |
_updated_at | コンテンツが最後に更新された日時。日時は ISO 8601 形式のUTCで表現されます。 |
_published_at | コンテンツがはじめて公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。 |
_last_published_at | コンテンツが最後に公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。 |
_status | コンテンツの公開状態を示します。 |
_space | サブスペース機能が有効な場合に、コンテンツが所属するスペースのLUIDを示します。 |
フィールドプロパティ
ユーザーが独自に定義したフィールドのデータです。
キーには各フィールドのLUID (Locally Unique Identifier) が、値にはユーザーが管理画面で入力した内容がレスポンスされます。
フィールド種類ごとのレスポンスデータを例示します。
flexibletext_field[format]=htmlを指定した場合(デフォルト動作)
"flexibletext_field": "<h2>abcdef</h2><p>abcdef</p><ul><li>abcdef</li></ul>"flexibletext_field[format]=textを指定した場合
"flexibletext_field": "abcdef abcdef abcdef"flexibletext_field[format]=markdownを指定した場合
"flexibletext_field": "## abcdef\n\nabcdef\n\n* abcdef"flexibletext_field[format]=portable_htmlを指定した場合
"flexibletext_field": "<h2 data-nilto-ftelm='123123123'>abcdef</h2><p data-nilto-ftelm='456456456'>abcdef</p><ul data-nilto-ftelm='789789789'><li>abcdef</li></ul>"※ポータブルHTML(portable_html)
書き込みAPIでのフレキシブルテキストフィールドへのデータ登録に適した独自HTMLフォーマットです。
アドオン要素が適用された状態でフレキシブルテキストフィールドにデータ登録することができます。
"singleline_field": "foobar""multiline_field": "foobar\r\nfoobar""boolean_field": true"singleselect_field": "value""multiselect_field": [
"value1",
"value2",
"value3"
]"datetime_field": "2023-01-23T04:50:00Z"日時は ISO 8601 形式のUTC(協定世界時)で表現されます。
"media_field": {
"url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
"alt": "alternative text"
}NILTO のメディアは Fastly Image Optimizer に対応しています。
URLの末尾にクエリパラメータを付与することで、画像のリサイズやフォーマット変換が可能です。
代表的なパラメータ:
?width=800: 幅を指定?height=600: 高さを指定?format=webp: WebPに変換?fit=bounds: アスペクト比を維持して収める
詳細は Fastory IO 仕様 を参照してください。
"reference_field": {
"_id": 2345678901,
"_model": "referenced",
"_title": "Hello World2",
"_created_at": "2023-01-23T04:50:00Z",
"_updated_at": "2023-01-23T04:50:00Z",
"_published_at": "2023-01-23T04:50:00Z",
"_status": "published",
"singleline_field": "foobar"
}繰り返しは、フィールドの集合であるオブジェクトの配列で表現されます。
"repeat_field": [
{
"singleline_field": "foo",
"boolean_field": true
},
{
"singleline_field": "foobar",
"boolean_field": false
},
{
"singleline_field": "foobarbaz",
"boolean_field": true
}
]組み合わせは、フィールドセットのデータであるオブジェクトの配列で表現されます。 フィールドセット内のluidは指定したLUIDです。fieldsはフィールドセット内フィールドです。
"combination_field": [
{
"luid": "field_set_a",
"fields": {
"singleline_field": "foo",
"boolean_field": true
}
},
{
"luid": "field_set_b",
"fields": {
"datetime_field": "2023-01-23T04:50:00Z",
"singleselect_field": "value"
}
},
{
"luid": "field_set_a",
"fields": {
"singleline_field": "foobar",
"boolean_field": false
}
}
]"field_set": {
"singleline": "foobar",
"boolean": true
}レスポンスボディ
200 OK
total | integer |
offset | integer |
limit | integer |
data | Array of objects (getContentResponse) |
400 Bad Request
status | string |
code | string |
401 Unauthorized
status | string |
code | string |
402 Payment Required
status | string |
code | string |
403 Forbidden
status | string |
code | string |
404 Not Found
status | string |
code | string |
429 Too Many Requests
status | string |
code | string |
message | string |
500 Internal Server Error
status | string |
code | string |
レスポンス例
{
"total;": 34,
"offset": 20,
"limit": 10,
"data": [
{
"_id": "1234567890",
"_model": "news",
"_title": "Hello World",
"_created_at": "2023-01-23T04:50:00Z",
"_updated_at": "2023-01-23T04:50:00Z",
"_published_at": "2023-01-23T04:50:00Z",
"_last_published_at": "2023-01-23T04:50:00Z",
"_status": "published",
"_space": "_parent",
"flexibletext_field": "<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>",
"singleline_field": "foobar",
"multiline_field": "foo\nbar",
"boolean_field": true,
"singleselect_field": "value1",
"datetime_field": "2023-01-23T04:50:00Z",
"media_field": {
"url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
"alt": "alternative text"
},
"repeat_field": [
{
"singleline_field": "foobar",
"boolean_field": true
},
{
"singleline_field": "foobarbaz",
"boolean_field": false
}
],
"combination_field": [
{
"luid": "block_a",
"fields": {
"multiline_field": "foo\nbar",
"boolean_field": true
}
},
{
"luid": "block_b",
"fields": {
"datetime_field": "2023-01-23T04:50:00Z",
"repeat_field": [
{
"singleline_field": "foobar"
},
{
"singleline_field": "foobarbaz"
}
]
}
},
{
"luid": "block_a",
"fields": {
"multiline_field": "foo\nbar\nbaz",
"boolean_field": false
}
}
],
"reference_field": {
"_id": "1234567890",
"_title": "Hello World2",
"_created_at": "2023-01-23T04:50:00Z",
"_updated_at": "2023-01-23T04:50:00Z",
"_published_at": "2023-01-23T04:50:00Z",
"_status": "draft",
"reference_field": "2345678901"
},
"field_set1": {
"singleline_field": "foobar",
"boolean_field": true
},
"field_set2": {
"multiline_field": "foo\nbar",
"datetime_field": "2023-01-23T04:50:00Z"
}
}
]
}{
"status": "400",
"code": "BadRequest"
}{
"status": "401",
"code": "Unauthorized"
}{
"status": "402",
"code": "Payment Required"
}{
"status": "403",
"code": "Forbidden"
}{
"status": "404",
"code": "Not Found"
}{
"status": "429",
"code": "Too Many Requests",
"message": "Expected available in 58 seconds."
}{
"status": "500",
"code": "Internal Server Error"
}