Quantcast
Channel: Issues for Drupal core
Viewing all articles
Browse latest Browse all 291721

Add arity key on field data returned by jsonapi

$
0
0

Problem/Motivation

#2864680: Spec Compliance: JSON API's schema disallows duplicate resource identifiers. EntityReferenceItems which reference the same entity must have an "arity" added an arity key to relationships returned by jsonapi to avoid an error when a reference field contains the same entity multiple times.

However, we have a similar problem when returning data about a specific field.
The previous fix only applies to ResourceIdentifier, but when querying a field, jsonapi returns normalized ResourceObject and those don't have an arity key.

Steps to reproduce

  1. Create an entity with a reference field and add the same entity multiple times in this reference field.
  2. Browse to /jsonapi/[entity_type]/[bundle]/[uuid]/[field_name] (real life example: /jsonapi/paragraph/carrousel/2f03a78f-1d0a-43e5-a6ee-6fb0fd8a90f7/field_images).
  3. You get this error:

    A JSON:API response failed validation (see the logs for details). Please report this in the issue queue on drupal.org

(However /jsonapi/[entity_type]/[bundle]/[uuid] does not have the same error because there, the relationship has arity keys.)

Proposed resolution

jsonapi should add an arity key on duplicated ResourceObject objects.

The arity logic from ResourceIdentifier should probably be refactorized to be used by other classes.

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet


Viewing all articles
Browse latest Browse all 291721

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>