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.
- 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.
Table of Contents
- Schnellstart
- Architektur
- Client-side Tooling
- Füge Businesslogik hinzu
- Demos
- Support & Fehlerbehebung
- Contributing
- Marke
- Lizenz
- Übersetzungen
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.
Probiere die folgenden Guides für die one-click Deployment Optionen:
Infra Anbieter | One-click Link | Zusätzliche Information |
---|---|---|
DigitalOcean | docs | |
Azure | docs |
Für auf Docker basierende Deployments and erweiterte Konfigurationsmöglichkeiten: Deployment Guides oder Manifest installieren.
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.
Hasura funktioniert mit jedem GraphQL Client. Wir empfehlen Apollo Client. Andernfalls besuche awesome-graphql für eine Liste von anderen möglichen Clients.
Die GraphQL Engine bietet einfach zu verstehende, skalierende und performante Möglichkeiten, um deinem Backend individuelle Businesslogik hinzuzufügen.
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.
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.
Transformiere Daten in Postgres oder lasse deine Businesslogik eigene Daten ableiten, welche von der GraphQL Engine abefragt werden können - mehr dazu.
Schaue dir die Beispiele in dem community/sample-apps Verzeichnis an.
-
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.
- 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)
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.
Lese hier den Contributing Guide für mehr Details.
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>
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.
Dieses Readme ist under anderem in den folgenden Sprachen verfügbar:
- Japanese 🇯🇵 (:pray: @moksahero)
- French 🇫🇷 (:pray: @l0ck3)
- Greek 🇬🇷 (:pray: @MIP2000)
Übersetzungen von anderen Dateien kannst du hier finden.