Docs Menu
Docs Home
/ /
Referencia

API de Atlas GraphQL

el Atlas GraphQL La API permite que las aplicaciones cliente accedan a datos almacenados en un clúster MongoDB Atlas vinculado utilizando cualquier cliente GraphQL estándar.

Atlas App Services crea automáticamente tipos GraphQL para cada colección vinculada con un esquema definido y evalúa los permisos basados ​​en roles para todas las solicitudes GraphQL. Para saber cómo hacer que los datos estén disponibles a través de la API GraphQL, consulte Exponer datos en una colección.

Para obtener más información sobre los tipos y operaciones generados que puede utilizar con la API GraphQL de Atlas, consulte Tipos y solucionadores de GraphQL.

Para ampliar la funcionalidad de la API GraphQL generada con consultas y mutaciones personalizadas,consulte Definir un solucionador personalizado.

Nota

Cree un clúster Atlas gratis

La API de GraphQL te permite acceder a los datos almacenados en un clúster de MongoDB Atlas o en una instancia de base de datos federada. Para empezar, crea un clúster gratuito y vincúlalo a tu aplicación.

Si aún no tiene datos pero aún desea explorar la API GraphQL, considere agregar un conjunto de datos de muestra a su clúster.

GraphQL es un lenguaje de consulta declarativo y fuertemente tipado para aplicaciones cliente. Los clientes definen la forma y el contenido exactos de los datos que necesitan en una sola solicitud, lo que elimina los problemas de sobrecaptación y evita la necesidad de múltiples y costosos viajes de ida y vuelta al servidor.

Para obtener más información sobre GraphQL, consulte el tutorial oficial de GraphQL.

Con App Services, se generan el esquema GraphQL y los resolvedores a partir de esquemas JSON para colecciones de MongoDB. Esto difiere de los enfoques tradicionales de desarrollo de esquemas GraphQL, priorizando el código y el esquema.

Para definir su esquema GraphQL con App Services:

  1. Define un esquema JSON para una colección de MongoDB en tu clúster de MongoDB Atlas. Puedes aplicar la forma del esquema de la colección según definiciones personalizadas o usar un esquema generado a partir de los documentos de la colección.

  2. Genere el esquema GraphQL y los solucionadores basados ​​en el esquema JSON de su colección.

  3. Opcionalmente extiende la funcionalidad de tu esquema generado de GraphQL con resolutores personalizados.

App Services genera automáticamente tipos y resolvedores para los datos que expones a la API de GraphQL. Los tipos y operaciones generados se nombran según el nombre del tipo base de cada colección expuesta. Si no defines un nombre de tipo, App Services usa el nombre de la colección.

Para obtener más información sobre cómo exponer una colección y nombrar su tipo de datos,consulte Exponer datos en una colección.

Nota

Las solicitudes de mutación y resolución personalizada de GraphQL utilizan transacciones de MongoDB para garantizar la corrección en múltiples operaciones de la base de datos. Si alguna operación de una solicitud falla, la transacción completa falla y ninguna operación se confirma en la base de datos.

Una consulta GraphQL es una operación de lectura que solicita campos específicos de uno o más tipos. App Services genera automáticamente tipos de consulta para los documentos de cada colección con un esquema definido.

Para obtener más información y ejemplos, incluida una lista de todos los tipos de consultas generados automáticamente,consulte Solucionadores de consultas.

# Find a single movie by name
query {
movie(query: { title: "The Matrix" }) {
_id
title
year
runtime
}
}
# Find all movies from the year 2000
query {
movies(query: { year: 2000 }) {
_id
title
year
runtime
}
}
# Find the ten longest movies from the year 2000
query {
movies(
query: { year: 2000 }
sortBy: RUNTIME_DESC
limit: 10
) {
_id
title
year
runtime
}
}

Una mutación de GraphQL es una operación de escritura que crea, modifica o elimina uno o más documentos. App Services genera automáticamente tipos de mutación para los documentos de cada colección con un esquema definido. App Services utiliza transacciones para garantizar escrituras seguras mediante mutaciones.

Para obtener más información y ejemplos, incluida una lista de todos los tipos de mutaciones generados automáticamente, consulte Solucionadores de mutaciones.

# Insert a new movie
mutation {
insertOneMovie(data: {
title: "Little Women"
director: "Greta Gerwig"
year: 2019
runtime: 135
}) {
_id
title
}
}
# Update the year of a movie
mutation {
updateOneMovie(
query: { title: "The Matrix" }
set: { year: 1999 }
) {
_id
title
}
}
# Delete a movie
mutation {
deleteOneMovie(query: { title: "The Room" }) {
_id
title
}
}
# Delete multiple movies
mutation {
deleteManyMovies(query: { director: "Tommy Wiseau" }) {
_id
title
}
}
  • La API de GraphQL puede procesar un máximo de diez resolutores para una consulta o mutación determinada. Si una operación especifica más de diez resolutores, la operación completa falla con el mensaje de error. "max number of queries reached".

  • La API de GraphQL puede resolver relaciones hasta un máximo de cinco para una consulta o mutación determinada. Si una operación especifica una relación con más de cinco resolutores, la operación completa falla con el mensaje de "max relationship depth exceeded" error.

  • La API GraphQL espera que los esquemas de colección tengan títulos únicos y genera una advertencia si su modelo de datos contiene títulos duplicados.

    Puede ignorar esta advertencia con seguridad si:

    • Los conflictos de títulos solo involucran objetos incrustados.

    • Cada esquema con un título dado utiliza una definición idéntica, incluidas las relaciones.

  • La API de GraphQL no admite actualmente relaciones para campos dentro de matrices de objetos incrustados. Puede usar un solucionador personalizado para buscar y resolver manualmente las relaciones de las matrices de objetos incrustados.

Volver

Actualizar un clúster de nivel compartido

En esta página