Content Delivery API > Changelog

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 RecordInterface interface;

  • Every GraphQL type related to uploads, single asset or asset gallery fields now implements the FileFieldInterface interface.

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 isBlank

    • Multiple-line text field Added boolean filter isBlank

    • Structured 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 with null value 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 with null values. Before this change, the filter would have returned only for not null values different from 2020-04-09T00:00:00+02:00.

    • Date fieldFiltering fields with, for instance {neq: "2020-04-09"} will return also items with null values. Before this change, the filter would have returned only for not null values different from 2020-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 with null values. Before this change, the filter would have returned only for items with not null uploads ids different from 123456.

      • 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 from 123456 OR equal to null. Before this change, the request would have returned only items having not nullvalues different from 123456.

    • Float fields

      • Filtering fields with, for instance, {neq: "2.42"} will return also items with null values. Before this change, the filter would have returned only for items with not null values different from 2.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 with null values. Before this change, the filter would have returned only for items with not null values different from 5.

      • 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 with null values. Before this change, the filter would have returned only for items with not null values different from 123456.

      • 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 from 123456 OR equal to null. Before this change, the request would have returned only items having not nullvalues different from 123456.

    • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • Filtering fields with, for instance {notIn: ["foobar"]} will return all items having values different from foobar OR equal to null. Before this change, the request would have returned only items having not nullvalues different from foobar.

    • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • Filtering fields with, for instance, {notMatches: { pattern: "foobar"}} will return also items with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • Filtering fields with, for instance {notIn: ["foobar"]} will return all items having values different from foobar OR equal to null. Before this change, the request would have returned only items having not nullvalues different from foobar.

    • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

    • 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 with null values. Before this change, the filter would have returned only for items with not null values different from 3.

    • 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 exist filter.

      • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • Filtering fields with, for instance, {notMatches: { pattern: "foobar"}} will return also items with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • Filtering fields with, for instance {notIn: ["foobar"]} will return all items having values different from foobar OR equal to null. Before this change, the request would have returned only items having not null values different from foobar.

    • Author

      • Filtering fields with, for instance, {notMatches: { pattern: "foobar"}} will return also items with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • 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 with null values. Before this change, the filter would have returned only for items with not null values different from 500.

    • 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 with null values. Before this change, the filter would have returned only for items with not null values different from foobar.

      • 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.