# Hasura GraphQL Engine
[![Docs](https://img.shields.io/badge/docs-v1.0-brightgreen.svg?style=flat)](https://hasura.io/docs)
[![CircleCI](https://circleci.com/gh/hasura/graphql-engine.svg?style=shield)](https://circleci.com/gh/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**](../event-triggers.md) für Datenbank-Events und [**remote schematas**](../remote-schemas.md) 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](https://hasura.io) und in den [Docs](https://hasura.io/docs).
---
![Hasura GraphQL Engine Demo](../assets/demo.gif)
---
![Hasura GraphQL Engine Realtime Demo](../assets/realtime.gif)
---
## 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](../remote-schemas.md).
- **Steuere Webhooks oder Severless-Funktionen**: Mit Postgres insert/update/delete Events. [Mehr dazu](../event-triggers.md).
- **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](https://hasura.io) und in den [Docs](https://hasura.io/docs).
## Inhaltsverzeichnis
**Table of Contents**
- [Schnellstart](#schnellstart)
- [One-click Deployment auf Heroku](#one-click-deployment-auf-heroku)
- [Andere one-click Deployment Optionen](#andere-one-click-deployment-optionen)
- [Architektur](#architektur)
- [Client-side Tooling](#client-side-tooling)
- [Füge Businesslogik hinzu](#füge-businesslogik-hinzu)
- [Remote Schemas](#remote-schemas)
- [Löse Webhooks und Datenbankevents aus](#löse-webhooks-und-datenbankevents-aus)
- [Demos](#demos)
- [Realtime Applikationen](#realtime-applikationen)
- [Videos](#videos)
- [Support & Fehlerbehebung](#support--fehlerbehebung)
- [Contributing](#contributing)
- [Marke](#marke)
- [Lizenz](#lizenz)
- [Übersetzungen](#uebersetzungen)
## Schnellstart:
### One-click Deployment auf Heroku
Der schnellste Weg, Hasura auszuprobieren, ist mit Heroku.
1. Klick auf den folgenden Button, um mit dem kostenlosen Postgress Add-On die GraphQL Engine auf Heroku zu deployen:
[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku)
2. Öffne die Hasura Console
Besuche `https://.herokuapp.com` (_ersetze \ mit dem Namen deiner App_), um die Admin Console zu öffnen.
3. Erstelle deine erste GraphQL Query
Erstelle eine Tabelle und lasse deine erste Query laufen. Folge diesem [einfachem Guide](https://hasura.io/docs/latest/graphql/core/getting-started/first-graphql-query.html).
### 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 | [![Deploy to DigitalOcean](https://graphql-engine-cdn.hasura.io/img/create_hasura_droplet_200px.png)](https://marketplace.digitalocean.com/apps/hasura?action=deploy&refcode=c4d9092d2c48&utm_source=hasura&utm_campaign=readme) | [docs](https://hasura.io/docs/latest/graphql/core/guides/deployment/digital-ocean-one-click.html#hasura-graphql-engine-digitalocean-one-click-app) |
| Azure | [![Deploy to Azure](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3a%2f%2fraw.githubusercontent.com%2fhasura%2fgraphql-engine%2fmaster%2finstall-manifests%2fazure-container-with-pg%2fazuredeploy.json) | [docs](https://hasura.io/docs/latest/graphql/core/guides/deployment/azure-container-instances-postgres.html) |
### Andere Deployment Möglichkeiten
Für auf Docker basierende Deployments and erweiterte Konfigurationsmöglichkeiten: [Deployment
Guides](https://hasura.io/docs/latest/graphql/core/getting-started/index.html) oder
[Manifest installieren](../install-manifests).
## 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.
![Hasura GraphQL Engine Architektur](../assets/hasura-arch.svg)
## Client-side Tooling
Hasura funktioniert mit jedem GraphQL Client. Wir empfehlen [Apollo Client](https://github.com/apollographql/apollo-client). Andernfalls besuche [awesome-graphql](https://github.com/chentsulin/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](../remote-schemas.md).
### 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](../event-triggers.md).
### 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](https://hasura.io/docs/latest/graphql/core/queries/derived-data.html).
## Demos
Schaue dir die Beispiele in dem
[community/sample-apps](../community/sample-apps) Verzeichnis an.
### Realtime Applikationen
- Gruppenchat entwickelt mit React, beinhaltet einen Typenanzeiger, Online Users und Benachrichtigungen bei
neuen Nachrichten.
- [Probiere es aus](https://realtime-chat.demo.hasura.app/)
- [Tutorial](../community/sample-apps/realtime-chat)
- [Durchsuche die APIs](https://realtime-chat.demo.hasura.app/console)
- Echtzeit Standort Tracking App, welche die Koordinaten von Fahrzeugen
verfolgt und auf einer Karte anzeigt.
- [Probiere es aus](https://realtime-location-tracking.demo.hasura.app/)
- [Tutorial](../community/sample-apps/realtime-location-tracking)
- [Durchsuche die APIs](https://realtime-location-tracking.demo.hasura.app/console)
- Echtzeit Dashboard für Datenaggregation von sich konstant ändernden Daten.
- [Probiere es aus](https://realtime-poll.demo.hasura.app/)
- [Tutorial](../community/sample-apps/realtime-poll)
- [Durchsuche die APIs](https://realtime-poll.demo.hasura.app/console)
### Videos
- [Füge GraphQL zu einer eigenen GitLab Instanz hinzu](https://www.youtube.com/watch?v=a2AhxKqd82Q) (_3:44 mins_)
- [Todo App mit Auth0 und GraphQL Backend](https://www.youtube.com/watch?v=15ITBYnccgc) (_4:00 mins_)
- [GraphQL auf GitLab mit GitLab Auth](https://www.youtube.com/watch?v=m1ChRhRLq7o) (_4:05 mins_)
- [Dashboard für 10 mio. Fahrzeuge mit Geo-Koordinaten (PostGIS, Timescale)](https://www.youtube.com/watch?v=tsY573yyGWA) (_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](https://discord.gg/vBPpJkS)
- Issue & Bug Tracking: [GitHub issues](https://github.com/hasura/graphql-engine/issues)
- Folge unseren Updates: [@HasuraHQ](https://twitter.com/hasurahq)
- Schreibe uns im [Webseiten Chat](https://hasura.io)
Wir sind stets bemüht um einen gepflegten und freundlichen Umgang in der Community. Bitte schaue dir dazu den [Code of Conduct](../code-of-conduct.md) an.
Wenn du ein Sicherheitsrisiko melden möchtest, bitte [lese dies](../SECURITY.md).
## Contributing
Lese hier den [Contributing Guide](../CONTRIBUTING.md) für mehr Details.
## Marke
Die Marke Hasura (logos, das Hasura Maskottchen, Abzeichen, etc.) kannst du
hier finden [../assets/brand](../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. ❤️
```html
```
## Lizenz
Die Kern-GraphQL Engine ist verfügbar unter [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) (Apache-2.0).
Alle **anderen Inhalte** (ausser die in [`server`](../server), [`cli`](../cli) und
[`console`](../console) Verzeichnissen) sind verfügbar unter der [MIT Lizenz](../LICENSE-community).
Dies beinhaltet [`docs`](../docs) und [`community`](../community)
Verzeichnisse.
## Übersetzungen
Dieses Readme ist under anderem in den folgenden Sprachen verfügbar:
- [Japanese :jp:](README.japanese.md) (:pray: [@moksahero](https://github.com/moksahero))
- [French :fr:](README.french.md) (:pray: [@l0ck3](https://github.com/l0ck3))
- [Greek 🇬🇷](README.greek.md) (:pray: [@MIP2000](https://github.com/MIP2000))
Übersetzungen von anderen Dateien kannst du [hier](../translations) finden.