Estructuras complejas de API REST en Jitterbit App Builder
Descripción general
De forma predeterminada, una solicitud GET contra un recurso de API REST de App Builder devuelve datos de una única tabla. La API REST de App Builder también admite estructuras complejas: anidar datos de tablas relacionadas en una única respuesta JSON, en lugar de requerir que quien realiza la llamada haga una solicitud separada para cada tabla relacionada.
Por ejemplo, un recurso customer podría anidar sus orders relacionadas, y cada pedido podría a su vez anidar sus items, de modo que una única solicitud GET contra customer devuelve un cliente junto con sus pedidos y los artículos de línea de cada pedido, todo en una sola respuesta.
Nota
Las estructuras complejas solo se admiten para operaciones GET. Otros métodos HTTP, como POST y PUT, no se admiten.
Esta página cubre:
-
Agregar un nodo secundario
Anidar los datos de una tabla bajo un recurso o nodo existente. -
Parámetros del nodo
Las propiedades disponibles en cada nodo, establecidas al agregar o editar uno. -
Campos del nodo
Los campos disponibles en un nodo y cómo controlan la salida JSON del nodo. -
Consultar una estructura anidada
Cómo se comportan los parámetros de consulta$fieldsy$expanduna vez que un recurso tiene una estructura anidada.
Agregar un nodo secundario
Una vez que hayas publicado un recurso para tu recurso raíz, anidas datos adicionales bajo él agregando nodos secundarios. Cada nodo que agregues se convierte en un nivel en la estructura JSON resultante y puede tener a su vez nodos secundarios adicionales, de modo que puedas anidar datos tan profundamente como tu modelo de datos lo requiera.
-
Ve a IDE > REST APIs.
-
La pestaña REST APIs enumera todos los puntos finales actuales en el panel Services. Localiza el mosaico perteneciente al recurso que buscas y haz clic en su icono de chevron para abrir la página REST API de ese recurso.
-
Localiza el punto final al que deseas agregar nodos secundarios en el panel Resources. Haz clic en su icono de detalles para ver el diálogo Resource.
-
En la pestaña Nodes, haz clic en + Node. Se abre el diálogo Node:

-
Establece los parámetros del nuevo nodo, incluido bajo qué nodo padre se anida y de qué tabla recupera datos.
-
Haz clic en Save. El panel Fields se vuelve disponible para este nodo.
-
En el panel Fields, haz clic en + Field para agregar y configurar los campos del nodo.
-
Repite los pasos 4 a 7 según sea necesario para anidar nodos secundarios adicionales, incluso bajo el nodo que acabas de crear, para anidar una estructura más de un nivel de profundidad.
Parámetros del nodo
Cada nodo, ya sea el nodo raíz implícito propio de un recurso o un nodo secundario que agregues, tiene las siguientes propiedades, que controlan cómo se recupera ese nivel de la estructura y cómo se representa en la respuesta:
| Nombre | Descripción |
|---|---|
| Parent | El nodo padre en la jerarquía. |
| Name | El nombre de este nodo en la estructura de árbol. El nombre puede incluir barras diagonales para anidar la estructura aún más profundamente, sin tener que crear un nodo intermedio para cada nivel. |
| Table | La tabla de la que recuperar datos. |
| Node Type | El tipo de nodo.
|
| Expand By Default | Determina si los datos del nodo se incluyen automáticamente en la respuesta. Quienes realizan llamadas pueden anular esto usando el parámetro de consulta $expand.
|
| GET Max Limit | El límite máximo de elementos que se pueden devolver en una solicitud GET, independientemente de lo que solicite quien realiza la llamada. Si es NULL, se utiliza el valor máximo predeterminado para la API REST. |
| Bindings | Configura los enlaces entre los nodos padre e hijo, de modo que App Builder sepa qué columna padre corresponde a qué columna hijo al anidar los datos. Una vez que guardes el nodo, aparece un icono de enlace junto a Parent; haz clic en él para abrir el diálogo Bindings y luego asigna cada columna padre a su columna hijo correspondiente. |
Campos de nodo
Cada campo que agregues al panel Fields de un nodo controla una parte de los datos en la salida JSON de ese nodo:
| Nombre | Descripción |
|---|---|
| Index | La posición del campo en el nodo. |
| Name | La clave del objeto utilizada para este campo en el documento JSON. Los nombres de campo deben ser únicos dentro de un nodo determinado y deben ser seguros para usar como claves JSON: evita espacios y puntuación. |
| Column | La columna de tabla u objeto de negocio que respalda el campo. |
| Include By Default | Si el campo se incluye en el documento de forma predeterminada. Los llamadores pueden anular esto usando el parámetro de consulta $fields. |
Consultar una estructura anidada
Una vez que un recurso tiene una estructura anidada, dos parámetros de consulta de convención REST URI existentes se comportan de manera diferente cuando un llamador lo consulta:
-
$fieldsacepta una ruta a una tabla secundaria, por lo que los llamadores pueden seleccionar campos de datos anidados en lugar de solo la tabla raíz:Valor Selecciona details/*Todos los campos de la tabla secundaria details.details/nameSolo el campo namede la tabla secundariadetails.*Todos los campos en todas las tablas. -
$expandes un parámetro verdadero/falso que permite a un llamador anular la configuración Expand By Default de un nodo, tanto para solicitudes de elemento como de colección.$expand=trueexpande el nodo independientemente de su valor predeterminado;$expand=falsesuprime la expansión independientemente de su valor predeterminado.