Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
16 KiB
Hasura GraphQL Engine
Hasura GraphQL Engine - это сверхбыстрый графический сервер позволяющий создавать мгновенный GraphQL API работающий в режиме реального времени в базе данных Postgres, с webhook триггерами на основе событий в базе данных, и remote schemas для бизнес-логики.
Hasura помогает строить GraphQL приложения при поддержке Postgres или постепенно перейти на GraphQL для уже существующих приложений, использующих Postgres.
Подробнее на hasura.io и docs.
Характеристики
- Делать мощные запросы: встроенная фильтрация, нумерация страниц, поиск шаблонов, объёмная вставка, обновление, удаление мутаций.
- Режим реального времени: Конвертируйте любой запрос GraphQL в запрос в режиме реального времени, используя подписку.
- Слияние удаленных схем: Доступ к пользовательским схемам GraphQL для бизнес-логики через единую конечную точку GraphQL Engine. Подробнее.
- Запуск webhook-ов или serverless функций: В ответ на события Postgres insert/update/delete.( подробнее)
- Работает с существующими базами данных: Направьте его на существующую базу данных Postgres, чтобы мгновенно получить готовый к использованию GraphQL API.
- Подробный контроль доступа: Динамический контроль доступа, интегрируемый с Auth системой (напр: auth0, firebase-auth).
- Высокая производительность и малое воздействие: ~15MB изображение docker-a; ~50MB RAM @ 1000 req/s; многоядерный.
- Интерфейс администрирования и миграции: Интерфейс администрирования и миграция схемы на Rails
- Postgres ❤️: Поддержка Postgres типов (PostGIS/geo-location, и т.д.), преобразуется в graphs, запускает процедуры или функции, сохраненные посредством мутаций.
Подробнее на hasura.io и docs.
Содержание
Содержание
- Быстрый запуск:
- Архитектура
- Инструменты клиентской стороны
- Добавление бизнес-логики
- Demos
- Поддержка и устранение неисправностей
- Контрибуция
- Элементы бренда
- Лицензия
Быстрый запуск:
Деплоймент одним кликом на Heroku
Самый быстрый способ попробовать Hasura через Heroku.
-
Нажмите на кнопку ниже, чтобы развернуть GraphQL Engine на Heroku с бесплатным дополнением Postgres:
-
Откройте консоль Hasura
Посетите
https://<app-name>.herokuapp.com
(замените <app-name> с именем вашего приложения) чтобы открыть консоль администрирования. -
Сделайте свой первый GraphQL-запрос
Создайте таблицу и сразу же выполните свой первый запрос. Следуйте следующим указаниям простое руководство.
Другие варианты деплоймента одним кликом
Ознакомьтесь со следующими инструкциями по деплойменте одним кликом:
Infra provider | One-click link | Additional information |
---|---|---|
DigitalOcean | docs | |
Azure | docs |
Другие методы деплоймента
Для методов деплоймента на базе Docker и расширенных опций конфигурации, ознакомьтесь с руководство по деплойменту или установока манифестов.
Архитектура
Hasura GraphQL Engine расположен перед базой данных Postgres и может принимать запросы GraphQL от ваших клиентских приложений. Он может быть сконфигурирован для работы с вашей существующей системой Auth и может управлять доступом с помощью правил полевого уровня с динамическими переменными из вашей системы auth.
Вы также можете объединить удаленные GraphQL схемы и предоставить единый GraphQL API.
Инструменты клиентской стороны
Hasura работает с любым GraphQL клиентом. Мы рекомендуем использовать Apollo Client. Посетите awesome-graphql для списка клиентов.
Добавить бизнес-логику
GraphQL Engine предоставляет простые в обосновании, масштабируемые и производительные методы для добавления бизнес-логики в ваш бэкенд:
Схемы удаленного доступа
Добавьте пользовательские преобразователи в удаленную схему в дополнение к схеме GraphQL на основе Postgres Hasura. Идеально подходит для использования в таких случаях, как имплементация платежного API или запрос данных, отсутствующих в вашей базе данных. - подробнее.
Запуск webhook по событиям в базе данных
Добавьте асинхронную бизнес-логику, которая срабатывает на основе событий в базе данных. Идеально подходит для уведомлений, каналов передачи данных от Postgres или асинхронной обработки - подробнее.
Полученные данные или трансформация данных
Преобразование данных в Postgres или запуск бизнес-логики для получения другого набора данных, который можно запросить с помощью GraphQL Engine. - подробнее.
Demos
Ознакомьтесь со всеми примерами приложений в community/examples папке.
Приложения в режиме реального времени
-
Приложение группового чата, построенное с помощью React, включает в себя индикатор набора текста, онлайн пользователей и уведомления о сообщениях.
-
Приложение для отслеживания местоположения в реальном времени, показывающее движущееся транспортное средство, изменяющее текущие GPS-координаты, движущееся по карте.
-
Информационная панель в режиме реального времени для агрегирования данных по постоянно меняющимся данным.
Видео
- Добавьте GraphQL к экземпляру GitLab, размещенному на вашем сервере (3:44 мин)
- Приложение Todo с Auth0 и GraphQL бэкенд (4:00 мин)
- GraphQL на GitLab интегрированный с GitLab auth (4:05 мин)
- Таблица для 10 миллионов ездок с геолокацией (PostGIS, Timescale) (3:06 мин)
Поддержка и устранение неисправностей
Документация и сообщество поможет вам решить большинство проблем. Если вы столкнулись с ошибкой или вам нужно связаться с нами, вы можете использовать один из следующих каналов связи:
- Поддержка и обратная связь: Discord
- Проблема и отслеживание ошибок: GitHub issues
- Следите за обновлениями продукта: @HasuraHQ
- Поговорите с нами чат на сайте
Мы стремимся создать открытую и доброжелательную атмосферу в сообществе. Пожалуйста, ознакомьтесь с Кодекс поведения.
Если вы хотите сообщить о проблеме безопасности, пожалуйста, прочитайте это.
Контрибуция
Ознакомьтесь с нашим руководством по контрибуции для более подробной информации.
Элементы бренда
Элементы бренда Hasura (логотипы, Hasura значки и т.д.) можно найти в assets/brand папке. Можете использовать их в вашем приложении / веб-сайте и т.д. Мы были бы рады, если бы вы добавили "Powered by Hasura" бейдж к вашим приложениям, построенным с помощью Hasura.. ❤️
<!-- Для светлых фонов -->
<a href="https://hasura.io">
<img width="150px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg" />
</a>
<!-- Для темных фонов -->
<a href="https://hasura.io">
<img width="150px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_white.svg" />
</a>
Лицензия
GraphQL Engine доступно по адресу Apache License 2.0 (Apache-2.0).
Все прочие материалы (за исключением материалов, содержащихся в server
, cli
и
console
папках) доступны под MIT License.
Сюда входит все, что есть в docs
и community
папках.