Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los puntos de conexión de GraphQL en Data API Builder (DAB) permiten consultar y modificar datos con precisión. Cada consulta declara exactamente qué campos necesita y admite argumentos para filtrar, ordenar y paginar los resultados.
De forma predeterminada, DAB hospeda su punto de conexión de GraphQL en:
https://{base_url}/graphql
Las entidades expuestas a través de la configuración se incluyen automáticamente en el esquema GraphQL.
Por ejemplo, si tiene books entidades y authors , ambas aparecen como campos raíz en el esquema.
Nota:
Use cualquier cliente o IDE moderno de GraphQL (como Apollo, Insomnio o GRAPHQL de VS Code) para explorar los campos de esquema y autocompletar.
Palabras clave admitidas en data API Builder
| Concepto | GraphQL | Propósito |
|---|---|---|
| Projection | items | Elección de los campos que se van a devolver |
| Filtros | filtro | Restricción de filas por condición |
| Ordenación | orderBy | Definición del criterio de ordenación |
| Tamaño de página | primero | Limitar los elementos por página |
| Continuación | después | Continuar desde la última página |
Estructura básica
Cada consulta de GraphQL comienza con un campo raíz que representa una entidad.
{
books {
items {
id
title
price
}
}
}
El resultado es un objeto JSON con la misma forma que el conjunto de selección:
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Nota:
De forma predeterminada, DAB devuelve hasta 100 elementos por consulta a menos que se configure lo contrario (runtime.pagination.default-page-size).
Tipos de consulta
Cada entidad admite dos consultas raíz estándar:
| Query | Descripción |
|---|---|
entity_by_pk |
Devuelve un registro por su clave principal. |
entities |
Devuelve una lista de registros que coinciden con filtros. |
Ejemplo de devolución de un registro:
{
book_by_pk(id: 1010) {
title
year
}
}
Ejemplo que devuelve múltiples elementos:
{
books {
items {
id
title
}
}
}
Filtrado de resultados
Use el filter argumento para restringir los registros que se devuelven.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
Esta consulta devuelve todos los libros cuyo título contiene "Foundation".
Los filtros pueden combinar comparaciones con operadores lógicos:
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Consulte la referencia del argumento de filtro para operadores admitidos como eq, neq, lt, ltey isNull.
Ordenar resultados
El orderBy argumento define cómo se ordenan los registros.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Esto devuelve libros ordenados por year descendente y, a continuación, por title.
Consulte la referencia de argumento orderBy para obtener más detalles.
Limitar los resultados
El first argumento limita el número de registros que se devuelven en una sola solicitud.
{
books(first: 5) {
items { id title }
}
}
Esto devuelve los cinco primeros libros ordenados por clave principal de forma predeterminada.
También puede usar first: -1 para solicitar el tamaño máximo de página configurado.
Obtenga más información en la primera referencia de argumentos.
Resultados continuos
Para obtener la página siguiente, use el argumento after con el cursor de la consulta anterior.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
El after token marca dónde finalizó la página anterior.
Consulte después de la referencia del argumento para obtener más detalles.
Selección de campos (proyección)
En GraphQL, elija exactamente qué campos aparecen en la respuesta.
No hay ningún comodín como SELECT *. Solicite solo lo que necesita.
{
books {
items { id title price }
}
}
También puede usar alias para cambiar el nombre de los campos en la respuesta:
{
books {
items {
bookTitle: title
cost: price
}
}
}
Consulte la referencia de proyección de campo para obtener más información.