GITHUB_PR_NUMBER: 10178 GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/10178 PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10751 Co-authored-by: Jigyasu Arya <6664187+lastnamearya@users.noreply.github.com> GitOrigin-RevId: 781c0d9ed3d8e61af4c773e971f960504de24a7d
13 KiB
Motor Hasura GraphQL
El motor de Hasura GraphQL es un potente servidor de GraphQL que provee de APIs instantáneas y en tiempo real a través de Postgres, con lanzadores de webhook basados en los eventos de la base de datos, y esquemas remotos para la lógica de negocio.
Hasura te ayuda a crear aplicaciones GraphQL respaldadas por Postgres o de manera gradual permite migrar a aplicaciones GraphQL desde aplicaciones que usan Postgres.
Leer más en hasura.io y en docs.
Características
- Crea potentes consultas: Incorpora filtrado, paginación, búsqueda de patrones, inserción masiva, actualización y eliminación de mutaciones.
- En tiempo real: Convierte cualquier consulta de GraphQL en una consulta en tiempo real mediante el uso de subscripciones.
- Une esquemas remotos: Accede a esquemas GraphQL personalizados para lógica de negocios mediante un único extremo del motor GraphQL. Leer más.
- Ejecuta webhooks o funciones sin servidor: En los eventos insertar/actualizar/eliminar de Postgres (leer más).
- Trabaja con bases de datos existentes en tiempo real: Señala una base de datos existente de Postgres, para que de manera instantánea obtenga una API GraphQL lista para usar.
- Control de acceso Fine-grained: Control de acceso dinámico que se integra con su sistema de autenticación (ejemplos: auth0, firebase-auth).
- Alto rendimiento y bajo consumo: ~15MB imagen de docker; ~50MB RAM @ 1000 req/s; multi-núcleo.
- Interfaz de administración y Migraciones: Interfaz de administración y esquema de migraciones inspiradas en Rails.
- Postgres ❤️: Soporta los tipos de Postgres (PostGIS/geo-location, etc.), convierte las vistas a gráficas, ejecuta funciones almacenadas o procedimientos con mutaciones.
Leer más en hasura.io y en docs.
Tabla de contenidos
Tabla de contenidos
- Inicio rápido:
- Arquitectura
- Herramientas client-side
- Agregar lógica de negocio
- Demos
- Soporte y solución de problemas
- Contribuir
- Archivos de marca
- Licencia
- Traducciones
Inicio rápido:
Despliegue en un click con Heroku
La manera más rápida de probar Hasura es usando Heroku.
-
Da click en el siguiente botón para desplegar el motor GraphQL en Heroku con el add-on gratuito de Postgres:
-
Abre la consola de Hasura
Visita
https://<app-name>.herokuapp.com
(reemplaza <app-name> con el nombre de tu aplicacion) para abrir la consola de administrador. -
Haz tu primer consulta con GraphQL
Crea una tabla e instantáneamente ejecuta tu primer consulta. Sigue esta guía simple.
Otras opciones de despliegue en un clic
Revisa las instrucciones para las siguientes opciones de despliegue en un click:
Proveedor de infraestructura | Enlace en un clic | Información adicional |
---|---|---|
DigitalOcean | docs | |
Azure | docs |
Otros métodos de despliegue
Para el despliegue basado en Docker y opciones de configuración avanzadas, revisar guías de despliegue o manifiesto de instalación.
Arquitectura
El motor de Hasura GraphQL lidera una instancia de base de datos Postgres y puede aceptar peticiones desde sus aplicaciones cliente. Puede ser configurada para trabajar con su sistema ya existente de autenticación, y puede manejar el control de acceso haciendo uso de reglas "field-level" con variables dinámicas desde su sistema de autenticación.
También puede unir esquemas remotos de GraphQL y proveer de una API unificada de GraphQL.
Herramientas client-side
Hasura trabaja con cualquier cliente GraphQL. Recomendamos usar Apollo Client. Ver awesome-graphql para una lista de clientes.
Agregar lógica de negocio
El motor GraphQL provee de métodos faciles de razonar, escalables y de desempeño para agregar una lógica de negocio personalizada a su servidor.
Esquemas remotos
Agrega solucionadores personalizados, mediante un esquema remoto adicional al esquema de GraphQL basado en Postgres de Hasura. Ideal para casos de uso, como la implementación de una API de pagos, o la consulta de información que no esta en su base de datos - leer más.
Ejecutar webhooks con eventos de la base de datos
Agrega la lógica de negocios de forma asíncrona, la cual es ejecutada en base a los eventos de la base de datos. Ideal para notificaciones, canales de datos de Postgres o procesamiento asíncrono - leer más.
Datos derivados o transformación de datos
Transforma datos en Postgres o ejecuta la lógica de negocio en ellos para derivar otro conjunto de datos que puedan ser consultados usando el motor de GraphQL - leer más.
Demos
Revisa todos los ejemplos de aplicaciones en la carpeta de hasura/sample-apps.
Aplicaciones en tiempo real
-
Aplicación de Chat Grupal creada con React, incluye un indicador de escribiendo, usuarios en línea y notificaciones para nuevos mensajes.
-
Aplicación de rastreo de ubicación en tiempo real, que muestra a un vehículo en movimiento cambiando sus coordenadas en el GPS mientras se mueve en un mapa.
-
Un panel en tiempo real para agregar datos que estan cambio constante.
Videos
- Agregar GraphQL a una instancia "auto-hosted" de GitLab (3:44 mins)
- Aplicación ToDo con Auth0 y servidor GraphQL (4:00 mins)
- GraphQL en GitLab integrado con aunteticación de GitLab (4:05 mins)
- Panel para 10 millones de viajes con geolocalización (PostGIS, Timescale) (3:06 mins)
Soporte y solución de problemas
La documentación y la comunidad te ayudarán a solucionar la mayoría de los problemas. Si encuentras un error o necesitas contactarte con nosotros, puedes hacerlo usando uno de los siguientes canales:
- Soporte y retroalimentación: Discord
- Problemas y seguimiento de errores: GitHub issues
- Sigue las actualizaciones del producto: @HasuraHQ
- Habla con nosotros en nuestro chat
Estamos comprometidos a fomentar un ambiente abierto y acogedor en la comunidad. Por favor revisa el Código de Conducta.
Si quieres reportar un problema de seguridad, por favor lee esto.
Contribuir
Revisa nuestra guía de contribución para más detalles.
Archivos de marca
Los archivos de marca de Hasura (logotipos, la mascota de Hasura, la insignia: "powered by", etc.) pueden ser encontradas en la carpeta assets/brand. Siéntete libre de usarlos en tu aplicación, sitio web, etc. Estaremos encantados si agregas la insignia "Powered by Hasura" a tus aplicaciones creadas con Hasura. ❤️
<!-- For light backgrounds -->
<a href="https://hasura.io">
<img width="150px" src="https://res.cloudinary.com/dh8fp23nd/image/upload/v1711457032/main-web/hasura_logo_primary_lightbg_n0xhz8.svg" />
</a>
<!-- For dark backgrounds -->
<a href="https://hasura.io">
<img width="150px" src="https://res.cloudinary.com/dh8fp23nd/image/upload/v1711457033/main-web/hasura_logo_primary_darkbg_nussjm.svg" />
</a>
Licencia
El núcleo del motor GraphQL está disponible bajo la Licencia Apache 2.0 (Apache-2.0).
Todos los contenidos (excepto aquellos incluidos en los directorios server
, cli
y
console
) están disponibles bajo la Licencia MIT.
Esto incluye todo en los directorios docs
y community
.
Traducciones
Este archivo está disponible en los siguientes idiomas:
- Japonés 🇯🇵 (🙏 @moksahero)
- Francés 🇫🇷 (🙏 @l0ck3)
- Griego 🇬🇷 (🙏 @MIP2000)
- Español 🇲🇽(🙏 @ferdox2)
- Indonesian 🇮🇩 (🙏 @anwari666)
- Brazilian Portuguese 🇧🇷 (🙏 @rubensmp)
- German 🇩🇪 (🙏 @FynnGrandke)
Las traducciones para otros idiomas se encuentran aquí.