logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll
18/05/2025, by Ivan

Resumen (TL;DR):

  • Las peticiones HTTP se hacen a recursos de JSON:API. No los confundas con objetos recurso.
  • El objeto JSON que recibe el cliente se llama documento.
  • Un documento siempre es un objeto JSON y contiene los datos principales bajo la clave data.
  • Los datos bajo esa clave se llaman objetos recurso o objetos identificadores de recurso.
  • Cuando solicitas que los datos relacionados se incluyan en el documento, se convierte en un documento compuesto.
  • Un documento compuesto es aquel que tiene una clave included en el objeto de nivel superior.
  • Los recursos que devuelven muchos objetos recurso se denominan recursos colección.
  • Los recursos que devuelven un solo objeto recurso se llaman recursos individuales.
  • Los recursos que devuelven información sobre relaciones entre objetos recurso se llaman recursos de relación.
  • En términos de Drupal:
    • Resource Objects (objetos recurso) → Entidades
    • Resource Identifier Objects (objetos identificadores de recurso) → Elementos de campo de referencia de entidad
    • Document (documento) → Carga JSON de la petición/respuesta

A continuación se proporciona una breve descripción de los términos y conceptos utilizados al describir el módulo JSON:API.

Este glosario se basa en la especificación JSON:API, pero trata de definir los términos tal como se aplican en Drupal y amplía detalles sutiles que pueden no ser obvios para quienes no están familiarizados con la especificación o cómo leer una especificación.

Muchas de estas definiciones están relacionadas entre sí. Hay un diagrama al final de la página que muestra estos términos en contexto.

Recurso (Resource)

Una ubicación donde se puede obtener un documento de respuesta de JSON:API. Un recurso se localiza mediante su URL (localizador universal de recursos). No debe confundirse con un "objeto recurso". Un recurso no tiene correspondencia uno a uno con los datos de la aplicación.

En Drupal, un recurso de JSON:API no es sinónimo de entidad. Un recurso es un lugar donde puedes obtener los datos para un concepto. Por ejemplo, ese concepto puede ser “una colección de objetos recurso del tipo node--article” o “una representación del campo de referencia field_tags de un nodo artículo en particular”.

Documento de respuesta (Response Document)

El cuerpo codificado en JSON que retorna un recurso de JSON:API. Es el “envoltorio” donde se comunican los datos o errores al cliente HTTP. A veces se le llama el objeto de nivel superior. Cuando un documento tiene un miembro included, se le denomina documento compuesto.

Documento compuesto (Compound Document)

Un documento de respuesta que contiene una clave included. Un documento compuesto se utiliza para eliminar peticiones HTTP adicionales al incrustar objetos recurso relacionados junto con los datos principales de la respuesta. Se solicita añadiendo el parámetro include a la URL de la petición.

Documento de error (Error Document)

Un documento de respuesta que contiene una clave errors con uno o más objetos de error. Nunca contendrá una clave data. El código HTTP de respuesta de un documento de error será siempre de la serie 4xx o 5xx.

Recurso individual (Individual Resource)

Un recurso que contiene un solo objeto recurso bajo la clave data del documento de respuesta. Con autorización suficiente, este recurso es legible y modificable. En Drupal, este recurso se puede usar para ‘ver’, ‘actualizar’ o ‘eliminar’ una entidad individual. No se puede usar para ‘crear’ una entidad.

Recurso colección (Collection Resource)

Un recurso que contiene muchos objetos recurso bajo la clave data del documento de respuesta. Con autorización suficiente, este recurso es legible y escribible. Estos recursos pueden ser paginados, filtrados y ordenados. En Drupal, este recurso se puede usar para ‘crear’ una nueva entidad. No se puede usar para ‘actualizar’ o ‘eliminar’ entidades en la colección.

Recurso de relación (Relationship Resource)

Un recurso que contiene un objeto de relación como objeto de nivel superior en el documento de respuesta. Contiene uno o más objetos identificadores de recurso que representan referencias desde un objeto recurso a otro. Con autorización suficiente, este recurso es legible y modificable. En Drupal, este recurso puede usarse para ‘ver’ o ‘editar’ los elementos de un campo de referencia de entidad.

Un recurso que es una colección especial que contiene uno o más objetos recurso como miembro data del documento de respuesta. Los objetos recurso en esta colección son los sujetos de una relación en un objeto recurso referenciador. Este recurso es solo de lectura. En Drupal, este recurso se usa para ‘ver’ entidades referenciadas por un campo de referencia de entidad, pero no para ‘actualizar’ esas entidades ni ‘editar’ el campo de referencia que las enlaza.

Miembro de documento (Document member)

Un objeto JSON que forma parte del documento JSON:API de nivel superior. Estos objetos siempre se ubican bajo claves definidas por la especificación (por ejemplo, jsonapi, data, included o errors).

Objeto recurso (Resource Object)

Una representación de una entidad como un objeto JSON. No debe confundirse con un "recurso". Este sí tiene correspondencia uno a uno con los datos de la aplicación.

Objeto atributos (Attributes Object)

Un objeto JSON que representa información sobre el objeto recurso en el que se define. Los atributos pueden contener cualquier valor JSON válido. En Drupal, este objeto representa todos los valores de campos de entidad que no son referencias a otras entidades.

Objeto relaciones (Relationships Object, plural)

Un objeto JSON que contiene referencias desde el objeto recurso donde se define hacia otros objetos recurso. Contiene múltiples miembros, que son objetos de relación (singular). En Drupal, este objeto representa todos los valores de campos de referencia de entidad.

Objeto de relación (Relationship Object, singular)

Un objeto JSON que representa las referencias desde el objeto recurso donde se define hacia otros objetos recurso. Contiene objetos identificadores de recurso, cada uno representando una relación individual hacia otro objeto recurso. En Drupal, este objeto representa un único campo de referencia de entidad.

Objeto identificador de recurso (Resource Identifier Object)

Un objeto JSON muy simple que representa una relación de un objeto recurso a otro. No debe confundirse con un "objeto recurso". Contiene solo una clave type y una clave id, y una clave opcional meta para información adicional sobre esa relación. Importante: no contiene un miembro links.

Proporciona “enlace de recursos” que, en un documento compuesto, permite al cliente HTTP correlacionar objetos de relación con los objetos recurso referenciados que aparecen en el miembro included del documento compuesto.

Un objeto JSON que contiene hipervínculos a otros recursos.

Objeto de error (Error Object)

Un objeto JSON que representa un error ocurrido durante el procesamiento de una solicitud. Puede representar errores de cliente, errores de validación o errores de servidor, entre otros.

Json:API structure
Diagram of these definitions

 

Artículo de la Documentación de Drupal.