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
11 KiB
Hasura GraphQL Engine
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.
Fonctionnalités
- 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
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
Démarrage rapide:
Déploiement sur Heroku en un click
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.
Autres méthodes de déploiement
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.
Architecture
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.
Outils côté client
Hasura fonctionne avec n'importe quel client GraphQL. Nous recommandons l'utilisation d'Apollo Client. Consultez awesome-graphql pour une liste de clients.
Ajout de logique métier
GraphQL Engine fournit plusieurs méthodes claires, évolutives et performantes pour ajouter votre propre logique métier à votre backend:
Schémas distants
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.
Déclenchez des webhooks sur des évènements de base de données
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.
Données dérivée ou transformations de données
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.
Démos
Consultez toutes les applications d'example dans le répertoire hasura/sample-apps.
Applications temps-réel
-
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.
Vidéos
- 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)
Support & Dépannage
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.
Contribuer
Consultez notre guide de contribution pour plus de détails.
Elements de marque
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>
Licence
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
.
Traductions
Ceci readme est disponible dans les traductions suivantes:
Les traductions d'autres fichiers sont disponibles ici.