12 KiB
Hasura GraphQL Engine
Hasura GraphQL Engine ist ein blitzschneller GraphQL Server, welcher dir die Möglichkeit bietet, sofort und in Echtzeit GraphQL APIs in Postgres zu entwickeln, die mit webhook triggern für Datenbank-Events und remote schematas für Businesslogik erweitert werden können.
Hasura hilft dir, GraphQL-Anwendungen basierend auf Postgres zu entwickeln oder schrittweise zu GraphQL zu wechseln für schon existierende Anwendungen, die Postgres benutzen.
Dazu mehr auf hasura.io und in den Docs.
Features
- Entwickle mächtige Queries: Built-in Filter, Paginierung, Suchmuster, Bulk-Inserts, Update- und Delete-Mutationen
- Echtzeit: Konvertiere jede GraphQL Query zu einer Live-Query mit Hilfe von Subscriptions
- Merge Remote Schemas: Zugriff auf individuelle GraphQL Schemas für Businesslogik mit einem einzigen GraphQL Engine-Endpoint. Mehr dazu.
- Steuere Webhooks oder Severless-Funktionen: Mit Postgres insert/update/delete Events. Mehr dazu.
- Funktioniert mit bereits existierenden Live-Datenbanken: Steuere eine bereits existierende Postgres Datenbank an, um eine fertige GraphQL API zu erhalten
- Detailierte Zugriffssteuerung: Dynamischer Zugriff, der sich mühelos mit deinem Authentifizierungssystem verbinden lässt (z.B.: auth0, firebase-auth)
- Hochperformant & wenig Speicherbedarf: ~15MB docker image; ~50MB RAM @ 1000 req/s; multi-core aware
- Admin UI & Migration: Admin UI & von Rails inspirierte Schemata-Integration
- Postgres ❤️: Unterstützt Postgres Typen (PostGIS/geo-location, etc.), ändert Views zu Graphen, löst gespeicherte Funktionen aus oder Prozesse mit Mutationen
Mehr dazu auf hasura.io und in den Docs.
Inhaltsverzeichnis
Table of Contents
- Schnellstart
- Architektur
- Client-side Tooling
- Füge Businesslogik hinzu
- Demos
- Support & Fehlerbehebung
- Contributing
- Marke
- Lizenz
- Übersetzungen
Schnellstart:
One-click Deployment auf Heroku
Der schnellste Weg, Hasura auszuprobieren, ist mit Heroku.
-
Klick auf den folgenden Button, um mit dem kostenlosen Postgress Add-On die GraphQL Engine auf Heroku zu deployen:
-
Öffne die Hasura Console
Besuche
https://<app-name>.herokuapp.com
(ersetze <app-name> mit dem Namen deiner App), um die Admin Console zu öffnen. -
Erstelle deine erste GraphQL Query
Erstelle eine Tabelle und lasse deine erste Query laufen. Folge diesem einfachem Guide.
Andere one-click Deployment Optionen
Probiere die folgenden Guides für die one-click Deployment Optionen:
Infra Anbieter | One-click Link | Zusätzliche Information |
---|---|---|
DigitalOcean | docs | |
Azure | docs |
Andere Deployment Möglichkeiten
Für auf Docker basierende Deployments and erweiterte Konfigurationsmöglichkeiten: Deployment Guides oder Manifest installieren.
Architektur
Die Hasura GraphQL Engine simuliert eine Postgres Datenbank-Instanz and kann Anfragen von Client-Apps verarbeiten. Sie kann so konfiguriert werden, dass es mit deinem schon bestehenden Authentifizierungssystem funktioniert und kann dementsprechend Zugriffe via "field-level"-Regeln mit dynamischen Variablen von deinem Autehentifizierungssystem kontrollieren.
Du kannst auch Remote-GraphQL Schemas einbinden und so eine vereinheitlichte GraphQL API benutzen.
Client-side Tooling
Hasura funktioniert mit jedem GraphQL Client. Wir empfehlen Apollo Client. Andernfalls besuche awesome-graphql für eine Liste von anderen möglichen Clients.
Füge Businesslogik hinzu
Die GraphQL Engine bietet einfach zu verstehende, skalierende und performante Möglichkeiten, um deinem Backend individuelle Businesslogik hinzuzufügen.
Remote Schemas
Füge zusätzlich zu Hasuras Postgres-basierendem GraphQL Schema deine individuellen Resolver in einem Remote Schema hinzu. Dies hilft zum Beispiel bei der Implementierung von einer Bezahl-API oder beim Anfragen von Daten, die nicht in deiner eigenen Datenbank sind - mehr dazu.
Löse Webhooks und Datenbankevents aus
Füge asynchrone Businesslogik hinzu, welche von Datenbankevents ausgelöst wird. Das ist perfekt für Benachrichtigungen, Daten-Pipelines von Postgres oder asynchrones Processing - mehr dazu.
Abgeleitete Daten oder Datentransformation
Transformiere Daten in Postgres oder lasse deine Businesslogik eigene Daten ableiten, welche von der GraphQL Engine abefragt werden können - mehr dazu.
Demos
Schaue dir die Beispiele in dem community/sample-apps Verzeichnis an.
Realtime Applikationen
-
Gruppenchat entwickelt mit React, beinhaltet einen Typenanzeiger, Online Users und Benachrichtigungen bei neuen Nachrichten.
-
Echtzeit Standort Tracking App, welche die Koordinaten von Fahrzeugen verfolgt und auf einer Karte anzeigt.
-
Echtzeit Dashboard für Datenaggregation von sich konstant ändernden Daten.
Videos
- Füge GraphQL zu einer eigenen GitLab Instanz hinzu (3:44 mins)
- Todo App mit Auth0 und GraphQL Backend (4:00 mins)
- GraphQL auf GitLab mit GitLab Auth (4:05 mins)
- Dashboard für 10 mio. Fahrzeuge mit Geo-Koordinaten (PostGIS, Timescale) (3:06 mins)
Support & Fehlerbehebung
Die Dokumentation und die Community hilft bei der Fehlersuche und -behebung. Wenn du einen Bug gefunden hast oder mit uns in Verbindung treten möchtest, kannst du uns folgendermassen kontaktieren:
- Support & Feedback: Discord
- Issue & Bug Tracking: GitHub issues
- Folge unseren Updates: @HasuraHQ
- Schreibe uns im Webseiten Chat
Wir sind stets bemüht um einen gepflegten und freundlichen Umgang in der Community. Bitte schaue dir dazu den Code of Conduct an.
Wenn du ein Sicherheitsrisiko melden möchtest, bitte lese dies.
Contributing
Lese hier den Contributing Guide für mehr Details.
Marke
Die Marke Hasura (logos, das Hasura Maskottchen, Abzeichen, etc.) kannst du hier finden ../assets/brand. Du kannst sie in deiner App, Webseite, etc. benutzen. Wir würden uns sehr freuen, wenn du das "Powered by Hasura" Abzeichen deiner Hasura App hinzufügst. ❤️
<!-- For light backgrounds -->
<a href="https://hasura.io">
<img
width="150px"
src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"
/>
</a>
<!-- For dark backgrounds -->
<a href="https://hasura.io">
<img
width="150px"
src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_white.svg"
/>
</a>
Lizenz
Die Kern-GraphQL Engine ist verfügbar unter Apache License 2.0 (Apache-2.0).
Alle anderen Inhalte (ausser die in server
, cli
und
console
Verzeichnissen) sind verfügbar unter der MIT Lizenz.
Dies beinhaltet docs
und community
Verzeichnisse.
Übersetzungen
Dieses Readme ist under anderem in den folgenden Sprachen verfügbar:
- Japanese 🇯🇵 (🙏 @moksahero)
- French 🇫🇷 (🙏 @l0ck3)
- Greek 🇬🇷 (🙏 @MIP2000)
Übersetzungen von anderen Dateien kannst du hier finden.