Changelog
All the changes to the Content Delivery API:
2022/06/10 - Add RecordInterface and FileFieldInterface interfaces
Every GraphQL type related records/blocks now implement the
RecordInterfaceinterface;Every GraphQL type related to uploads, single asset or asset gallery fields now implements the
FileFieldInterfaceinterface.
2021/04/12 - Add isBlank filter to text fields
To have a simple way to filter empty texts, especially when using a structured text field, we have added a isBlank filter to the textual fields.
Changes to item fields
Single-line text field Added boolean filter
isBlankMultiple-line text field Added boolean filter
isBlankStructured text field Added boolean filter
isBlank
2020/05/11 - Changes in GraphQL filtering
To make the API more consistent and prevent ambiguous results we have changed how filtering works in some edge cases.
This is a big changeset, but should only affect edge cases and the minority of usages, following all the details.
Changes to item fields
Boolean fieldFiltering fields with
{eq: null}will return an error message in response payload. Before this change, the filter would have returned always an empty array. You can still retrieve fields withnullvalue using{eq: false}Color fieldFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. You can use{exists: false}from now on.DateTime fieldFiltering fields with, for instance
{neq: "2020-04-09T00:00:00+02:00"}will return also items withnullvalues. Before this change, the filter would have returned only fornot nullvalues different from2020-04-09T00:00:00+02:00.Date fieldFiltering fields with, for instance
{neq: "2020-04-09"}will return also items withnullvalues. Before this change, the filter would have returned only fornot nullvalues different from2020-04-09.Upload field
Filtering fields with
{eq: null}now has the same effect of using{exists: false}. Before this change, the filter would have returned always an empty array.Filtering fields with
{neq: null}now has the same effect of using{exists: true}. Before this change, the filter would have returned always an empty array.Filtering fields with, for instance
{neq: "123456"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nulluploads ids different from123456.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Important: Filtering fields with
{in: []}will return an empty collection. Before this change, the request would have returned all items.Important: Filtering fields with
{notIn: []}will return all items. Before this change, the request would have returned an empty collection.Important: Filtering fields with, for instance
{notIn: ["123456"]}will return all items having values different from123456OR equal tonull. Before this change, the request would have returned only items havingnot nullvalues different from123456.
Float fields
Filtering fields with, for instance,
{neq: "2.42"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different from2.42.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
GalleryFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Integer
Filtering fields with, for instance,
{neq: "5"}now will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different from5.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
JSONFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Position (geo points)Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Link
Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Filtering fields with
{eq: null}now has the same effect of using{exists: false}. Before this change, the filter would have returned always an empty array.Filtering fields with
{neq: null}now has the same effect of using{exists: true}. Before this change, the filter would have returned always an empty array.Filtering fields with, for instance,
{neq: "123456"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different from123456.Important: Filtering fields with
{in: []}will return an empty collection. Before this change, the request would have returned all items.Important: Filtering fields with
{notIn: []}will return all items. Before this change, the request would have returned an empty collection.Filtering fields with, for instance
{notIn: ["123456"]}will return all items having values different from123456OR equal tonull. Before this change, the request would have returned only items havingnot nullvalues different from123456.
LinksFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.SeoFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Slug
Filtering fields with, for instance,
{neq: "foobar"}now will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with, for instance
{notIn: ["foobar"]}will return all items having values different fromfoobarOR equal tonull. Before this change, the request would have returned only items havingnot nullvalues different fromfoobar.
String
Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Filtering fields with
{eq: null}now has the same effect of using{exists: false}. Before this change, the filter would have returned always an empty array.Filtering fields with
{neq: null}now has the same effect of using{exists: true}. Before this change, the filter would have returned always an empty array.Filtering fields with, for instance,
{neq: "foobar"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with, for instance
{notIn: ["foobar"]}will return all items having values different fromfoobarOR equal tonull. Before this change, the request would have returned only items havingnot nullvalues different fromfoobar.
Text
Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.
VideoFiltering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
Changes to item metas
ID
Filtering fields with
{eq: null}will return an error message in response payload. Before this change, the filter would have returned an empty result.Filtering fields with
{neq: null}will return an error message in response payload. Before this change, the filter would have returned an empty result.
Parent
Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.Filtering fields with
{eq: null}now has the same effect of using{exists: false}. Before this change, the filter would have returned always an empty array.
PositionFiltering fields with, for instance,
{neq: 3}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different from3.Status
Filtering fields with
{eq: null}will return an error message in response payload. Before this change, the filter would have returned an empty result.Filtering fields with
{neq: null}will return an error message in response payload. Before this change, the filter would have returned an empty result.
Changes to Upload fields
Alt, Title
Added
existfilter.Filtering fields with
{eq: null}now has the same effect of using{exists: false}. Before this change, the filter would have returned always an empty array.Filtering fields with
{neq: null}now has the same effect of using{exists: true}. Before this change, the filter would have returned always an empty array.Filtering fields with, for instance,
{neq: "foobar"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with, for instance
{notIn: ["foobar"]}will return all items having values different fromfoobarOR equal tonull. Before this change, the request would have returned only items havingnot nullvalues different fromfoobar.
Author
Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
Copyright
Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
FormatFiltering fields with
{eq: null},{neq: null}, will now return an error message in response payload. Before this change, the request would have return an empy collection.Height, WidthFiltering fields with, for instance,
{neq: "500"}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different from500.IDFiltering fields with
{eq: null},{neq: null}, will now return an error message in response payload. Before this change, the request would have return an empy collection.InUseFiltering fields with
{eq: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{eq: false}. You can use{eq: false}from now on.MimeTypeFiltering fields with
{eq: null},{neq: null}, will now return an error message in response payload. Before this change, the request would have return an empy collection.Notes
Filtering fields with, for instance,
{notMatches: { pattern: "foobar"}}will return also items withnullvalues. Before this change, the filter would have returned only for items withnot nullvalues different fromfoobar.Filtering fields with
{exists: null}will return an error message in response payload. Before this change, the filter would have returned the same result as{exists: false}. Please, use{exists: false}instead.
SizeFiltering fields with
{eq: null},{neq: null}, will now return an error message in response payload. Before this change, the request would have return an empy collection.SmartTags, TagsFiltering fields with
{contains: null}, will now return an error message in response payload. Before this change, the request would have return an empy collection.