12 KiB
Hasura GraphQL Engine
Hasura GraphQL Engine é um servidor GraphQL extremamente rápido que fornece instantaneamente, e em tempo real APIs GraphQL no Postgres, com webhook triggers em eventos de banco de dados, e esquemas remotos para lógica de negócios.
Hasura ajuda a criar GraphQL apps suportados pelo Postgres ou migrar gradualmente para GraphQL apps existentes usando Postgres.
Leia mais em hasura.io e na documentação.
Funcionalidades
- Faça consultas poderosas: Filtragem embutida, paginação, pesquisa de padrões, inserção em massa, atualização, exclusão de mutações.
- Em tempo real: Converta qualquer consulta GraphQL em uma consulta ativa usando subscriptions.
- Mesclar esquemas remotos: Acesse esquemas GraphQL personalizados para lógica de negócios por meio de um único GraphQL Engine endpoint. Leia mais.
- Acionar webhooks ou funções sem servidor: No Postgres insira/atualize/exclua eventos (leia mais)
- Funciona com bando de dados existentes: Aponte para um banco de dados Postgres existente para obter uma GraphQL API pronto para uso.
- Controle de acesso refinado: Controle de acesso dinâmico que se integra ao seu sistema de autenticação(ex: auth0, firebase-auth)
- Alta performance & low-footprint: ~15MB docker image; ~50MB RAM @ 1000 req/s; multicore aware
- Interface de Admin & Migração: Interface de Admin & esquemas de migração inspirada em Rails
- Postgres ❤️: Suporta Postgres types(PostGIS/geo-location, etc.), transforma visualizações em graphs, aciona funções ou procedimentos armazenados com mutações
Leia mais em hasura.io e na documentação.
Índice
Índice
- Começo rápido
- Arquitetura
- Ferramentas do client
- Adicionar lógica de negócios
- Demos
- Suporte e Solução de problemas
- Contribuindo
- Recursos da marca
- Licença
Começo rápido:
Implantação no Heroku em um click
O modo mais fácil de experimentar Hasura é via o Heroku.
-
Clique no botão abaixo para implantar GraphQL Engine no Heroku com o complemento gratuito do Postgres:
-
Abra o console do Hasura
Visite
https://<app-name>.herokuapp.com
(substitua <app-name> com o nome do seu app) para abrir o console do admin. -
Faça sua primeira consulta GraphQL
Crie uma tabela e rode instantaneamente sua primeira consulta. Siga esse simples guia.
Outros métodos de implantação
Confira as instruções para as seguintes opções de implantação com um clique:
Fornecedor de infraestrutura | Link com um clique | Informação adicional |
---|---|---|
DigitalOcean | docs | |
Azure | docs |
Outros métodos de implantação
Para implantação baseada no Docker e opções de configuração avançadas, veja o guias de implantação ou o manifestos de instalação.
Arquitetura
O Hasura GraphQL Engine possui uma instância de banco de dados Postgres e pode aceitar requisições GraphQL de seus aplicativos clientes. Ele pode ser configurado para funcionar com seu sistema de autenticação existente e pode manipular o controle de acesso usando regras em nível de campo com variáveis dinâmicas do seu sistema de autenticação.
Você também pode mesclar esquemas remotos do GraphQL e fornecer uma API GraphQL unificada.
Ferramentas do client
Hasura trabalha com qualquer client GraphQL. Recomendamos o uso do Apollo Client. Veja awesome-graphql para uma lista de clients.
Adicionar lógica de negócios
O GraphQL Engine fornece métodos easy-to-reason, escaláveis e de alto desempenho para adicionar lógica comercial personalizada ao seu back-end:
Esquemas remotos
Adicione resolvers personalizados em um esquema remoto, além do esquema GraphQL baseado em Postgres do Hasura. Ideal para casos de uso, como implementar uma API de pagamento ou consultar dados que não estão no seu banco de dados - leia mais.
Acionar webhooks em eventos de banco de dados
Adicione lógica de negócios assíncrona que é acionada com base nos eventos do banco de dados.Ideal para notificações, pipelines de dados do Postgres ou processamento assíncrono - leia mais.
Dados derivados ou transformações de dados
Transforme dados no Postgres ou execute a lógica de negócios para obter outro conjunto de dados que possa ser consultado usando o GraphQL Engine - leia mais.
Demos
Confira todos os aplicativos de exemplo no diretório community/examples.
Aplicações em tempo real
-
O aplicativo de bate-papo em grupo criado com o React inclui um indicador de digitação, usuários online e notificações de novas mensagens.
-
Aplicativo de rastreamento de localização ao vivo que mostra um veículo em movimento alterando as coordenadas atuais do GPS em movimento no mapa.
-
Um painel em tempo real para agregações de dados em constante mudança de dados.
Vídeos
- Adicionar o GraphQL a uma instância auto-hospedada do GitLab (3:44 mins)
- Todo app com Auth0 e GraphQL backend (4:00 mins)
- GraphQL no GitLab integrado ao GitLab auth (4:05 mins)
- Painel para 10 milhões de viagens com geolocalização (PostGRES, Timescale) (3:06 mins)
Suporte e Solução de problemas
A documentação e a comunidade ajudarão você a solucionar a maioria dos problemas. Se você encontrou um bug ou precisa entrar em contato conosco, entre em contato usando um dos seguintes canais:
- Support & feedback: Discord
- Issue & bug tracking: GitHub issues
- Siga a atualizações do produto: @HasuraHQ
- Fale conosco em nosso chat
Estamos comprometidos em promover um ambiente aberto e acolhedor na comunidade. Por favor, consulte o Código de Conduta.
Se você deseja relatar um problema de segurança, por favor leia isto.
Contribuindo
Confira nosso guia de contribuição para mais detalhes.
Recursos da marca
Os ativos da marca Hasura (logotipos, o mascote Hasura, powered by badges etc.) podem ser encontrados na pasta assets/brand. Sinta-se à vontade para usá-los em seu aplicativo / site, etc. Ficaríamos felizes se você adicionar o "Powered by Hasura" badge para seus aplicativos criados usando o Hasura. ❤️
<!-- 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>
Licença
O core GraphQL Engine está disponível sob o Apache License 2.0 (Apache-2.0).
Todos os outros conteúdos (exceto aqueles em server
, cli
e
console
diretórios) estão disponíveis sob o MIT License.
Isso inclui tudo nos diretórios docs
e community
.