Hasura GraphQL Engine est un serveur GraphQL ultra-rapide qui vous permet de créer instantanément, des APIs GraphQL basées sur Postgres, avec des déclencheurs de webhoook pour la logique métier.
Hasura vous aide à construire des applications GraphQL basées sur Posgres ou à adopter graduellement GraphQL pour des applications existantes utilisant Postgres.
Plus d'informations sur hasura.io et dans la documentation.
- Réalisez des requêtes avancées: filtrage intégré, pagination, recherche par patterns, mutations d'insertions en masse, mises-à-jour et suppression.
- Temps réel: Convertissez n'importe quelle requête GraphQL en requête temps-réel en uttilisant les
subscriptions
. - Fusionnez des schémas distants: Accédez à vos propres schémas GraphQL pour votre logique métier, via un point d'accès GraphQL unique. Plus d'informations.
- Déclenchez des webhooks ou des fonctions serverless: En réactions aux évènements Postgres insert/update/delete (Plus d'informations).
- Fonctionne avec les bases de données existantes: Pointez GraphQL Engine vers une base de données Postgres existante afin d'obtenir instantanément une API GraphQL prête à l'emploi.
- Contrôle d'accès détaillé: Contrôle d'accès dynamique qui s'intègre avec votre système d'authentification (ex: auth0, firebase-auth).
- Haute performance & faible impact: Image Docker de ~15MB; ~50MB RAM @ 1000 req/s; prise en compte du multi-core.
- Interface d'administration & Migrations: Interface d'administration & migrations de schéma à la Rails.
- Postgres ❤️: Supporte les types Postgres (PostGIS/geo-location, etc.), transforme les vues en graphs, déclenche des procédures ou fonctions stockées via les mutations.
Plus d'informations sur hasura.io et dans la documentation.
Table des matières
- Démarrage rapide
- Architecture
- Outils côté client
- Ajout de logique métier
- Demos
- Support & Dépannage
- Contribuer
- Elements de marque
- Licence
La manière la plus rapide d'essayer Hasura est via Heroku.
-
Cliquez sur le bouton ci-dessous pour déployer GraphQL Engine sur Heroku avec l'add-on Postgres gratuit:
-
Ouvrez la console Hasura
Visitez
https://<app-name>.herokuapp.com
(remplacez <app-name> par le nom de votre application) pour ouvrir la console d'administration. -
Réalisez votre première requête GraphQL
Créez une table et réalisez votre première requête. Suivez ce guide.
Pour les méthodes de déploiement basées sur Docker et les options de configuration avancées, consultez les guides de déploiement ou les manifestes d'installation.
Hasura GraphQL Engine se place en frontal d'une base de données Postgres et peut accepter les requêtes GraphQL de vos applications clientes. Il peut être configuré pour fonctionner avec votre système d'authentification existant et peut gérer le contrôle d'accès au niveau des champs grâce a des règles, avec des variables dynamiques provenant du système d'authentification.
Vous pouvez également fusionner des schémas GraphQL distants et fournir une API GraphQL unifiée.
Hasura fonctionne avec n'importe quel client GraphQL. Nous recommandons l'utilisation d'Apollo Client. Consultez awesome-graphql pour une liste de clients.
GraphQL Engine fournit plusieurs méthodes claires, évolutives et performantes pour ajouter votre propre logique métier à votre backend:
Ajoutez vos propres resolvers dans un schéma distant en plus du schéma dérivé de Postgres d'Hasura. Idéal pour des cas d'utilisation tels que l'implémentation d'une API de paiement, ou le requêtage de donnée ne se trouvant pas dans votre base de données - plus d'informations.
Ajoutez de la logique métier asynchrone, déclenchée par des évènements de base de données. Idéal pour les notifications, les pipelines de données de Postgres ou les traitements asynchrones - plus d'informations.
Transformez les données dans Postgres ou exécutez de la logique métier dessus pour en deriver un autre jeu de données qui peut être requêté à l'aide de GraphQL Engine - plus d'informations.
Consultez toutes les applications d'example dans le répertoire hasura/sample-apps.
-
Application de messagerie de groupe développée avec React, incluant un indicateur de frappe, les utilisateurs connectés & les notifications de nouveaux messages.
-
Application de localisation en temps-réel montrant un véhicule dont les coordonnées GPS évoluent se déplacer sur une carte.
-
Un tableau de bord temps-réel pour l'aggrégation de données en constante évolution.
- Ajoutez GraphQL à une instance GitLab auto-hébergée (3:44 mins)
- Application de liste de tâches avec Auth0 et un backend GraphQL (4:00 mins)
- API GraphQL sur GitLab intégrée avec l'authentification GitLab (4:05 mins)
- Tableau de bord pour 10 millions de trajets avec géolocalisation (PostGIS, Timescale) (3:06 mins)
La documentation et la communauté vous aideront à résoudre la plupart des problèmes. Si vous avez rencontré un bug ou avez besoin de nous contacter, vous pouvez nous joindre au travers des canaux suivants:
- Support & retours: Discord
- Problèmes & remontées de bugs: GitHub issues
- Suivez les mise à jour du produit: @HasuraHQ
- Parlez nous sur la messagerie du site Web
Nous nous impliquons dans le développement d'un environnement ouvert et accueillant dans la communauté. Veuillez consulter le Code de Conduite.
Si vous souhaitez rapporter un problème de sécurité, veuillez lire ceci.
Consultez notre guide de contribution pour plus de détails.
Les élements de marque Hasura (logos, mascotte Hasura, badges "powered by" etc...) peuvent être trouvés dans le répertoire assets/brand. N'hésitez pas à les utiliser dans votre application/site Web etc... Nous serions ravis si vous ajoutiez le badge "Powered by Hasura" à votre application développée à l'aide d'Hasura. ❤️
<!-- Pour les fonds clairs -->
<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>
<!-- Pour les fonds foncés -->
<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>
Le GraphQL Engine est disponible sous Apache License 2.0 (Apache-2.0).
Tous les autres contenus (à l'exception de ceux dans les répertoires
server
, cli
et console
) sont
disponibles sous Licence MIT. Cela inclut tout le
contenu des répertoires docs
et community
.
Ceci readme est disponible dans les traductions suivantes:
- Japanese 🇯🇵 (:pray: @moksahero)
- English
Les traductions d'autres fichiers sont disponibles ici.