# 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エンジンは **Postgres上で瞬時にリアルタイムのGraphQL API** を[**ウェブフックトリガー**](../event-triggers.md)をデータベースイベントで起動し、ビジネスロジック用の[**リモートスキーマ**](../remote-schemas.md)を提供する、非常に高速なGraphQLサーバーです。 Hasuraは、Postgresをバックエンドに持つGraphQLアプリケーションを構築したり、Postgresを使用して既存のアプリケーションをGraphQLに段階的に移行したりするのに役立ちます。 こちらと [hasura.io](https://hasura.io) こちらから [docs](https://hasura.io/docs) 詳細を読んでください。 ------------------ ![Hasura GraphQL エンジンデモ](../assets/demo.gif) ------------------ ![Hasura GraphQL エンジンリアルタイムデモ](../assets/realtime.gif) ------------------- ## 機能一覧 * **強力なクエリ**: 組み込みフィルタリング、ページ付け、パターン検索、一括挿入、更新、削除などのmutations * **リアルタイム**: subscriptions使って様々なGraphQLクエリをライブクエリに変換 * **リモートスキーマのマージ**: 単一のGraphQLエンジンエンドポイントを介してビジネスロジック用のカスタムGraphQLスキーマにアクセスカスタムのGraphQLスキーマにアクセス [**続きを読む**](../remote-schemas.md). * **ウェブフックやサーバーレス機能を起動する**: Postgresのinsert / update / deleteイベント時 ([続きを読む](../event-triggers.md)) * **既存のライブデータベースと連携**: 既存のPostgresデータベースから、すぐに使えるGraphQL APIが即座に作られます * **きめ細かいアクセス制御**: 認証システムと統合する動的アクセス制御(例:auth0、firebase-auth) * **管理UIと移行**: 最大15MBのドッカーイメージ。最大50MB RAM @ 1000 req/s。マルチコア対応 * **Postgres** ❤️: Postgresの型(PostGIS/地理位置など)をサポートし、ビューをグラフに変え、保存された関数や手順を変更した手続きを起動 こちらと [hasura.io](https://hasura.io) こちらから [docs](https://hasura.io/docs)詳細を読んでください。 ## 目次 **目次** - [クイックスタート:](#quickstart) - [Herokuへのワンクリックでのデプロイ](#one-click-deployment-on-heroku) - [その他のデプロイ方法](#other-deployment-methods) - [アーキテクチャ](#architecture) - [クライアント側ツール](#client-side-tooling) - [ビジネスロジックの追加](#add-business-logic) - [リモートスキーマー](#remote-schemas) - [データベースイベントによるウェブフックの起動](#trigger-webhooks-on-database-events) - [デモ](#demos) - [リアルタイムアプリケーション](#realtime-applications) - [動画](#videos) - [サポート&トラブル対応](#support--troubleshooting) - [開発への参加](#contributing) - [ブランド資産](#brand-assets) - [ライセンス](#license) ## クイックスタート: ### Herokuへのワンクリックでのデプロイ Hasuraを試す最も早い方法はHerokuを使うことです。 1. 無料のPostgresアドオン経由でHerokuにGraphQLエンジンをデプロイするには、次のボタンをクリックしてください: [![Herokuへのデプロイ](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku) 2. Hasuraコンソールを開きます。 こちらのリンクから `https://.herokuapp.com` (*\を自分のアプリ名で置き換えます*) 管理コンソールにアクセスしてください。 3. 最初のGraphQLのクエリを発行 テーブルを作成して、最初のクエリを実行します。こちらの [シンプルなガイド](https://hasura.io/docs/1.0/graphql/manual/getting-started/first-graphql-query.html)を参考にしてください。 ### 他のワンクリックでデプロイする方法 以下のワンクリックデプロイの方法もチェックしてみてください: | **インフラ業者** | **ワンクリックリンク** | **追加情報** | |:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------:| | DigitalOcean | [![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) | [ドキュメント](https://hasura.io/docs/1.0/graphql/manual/guides/deployment/digital-ocean-one-click.html#hasura-graphql-engine-digitalocean-one-click-app) | | Azure | [![Azureへのデプロイ](https://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) | [ドキュメント](https://hasura.io/docs/1.0/graphql/manual/guides/deployment/azure-container-instances-postgres.html) | ### 他のデプロイ方法 Dockerでのデプロイと高度なカスタマイズオプションについては [デプロイガイド](https://hasura.io/docs/1.0/graphql/manual/getting-started/index.html) か [インストールマニフェスト](../install-manifests)を参考にしてください。 ## アーキテクチャ Hasura GraphQLエンジンはPostgresデータベースインスタンスの前で動作し、クライアントアプリケーションからGraphQLのリクエストを受け取ることができます。既存の認証システムと連携するように設定でき、認証システムからの動的変数を含むフィールドレベルのルールを使用してアクセス制御を処理できます。 リモートのGraphQLスキーマをマージして、統一されたGraphQL APIを提供することもできます。 ![Hasura GraphQLエンジンアーキテクチャ](../assets/hasura-arch.svg) ## クライアント側ツール HasuraはどのGraphQLクライアントでも動作します。[Apolloクライアント](https://github.com/apollographql/apollo-client)を使うのをおすすめします。. [awesome-graphql](https://github.com/chentsulin/awesome-graphql)にクライアントのリストがあります。 ## ビジネスロジックの追加 GraphQLエンジンは、バックエンドにカスタムビジネスロジックを追加するための、理解しやすくスケーラブルで高性能なメソッドを提供します。 ### リモートスキーマ HasuraのPostgresベースのGraphQLスキーマに加えて、リモートスキーマにカスタムリゾルバを追加します。支払いAPIの実装、データベースに無いデータの問い合わせなどのユースケースに最適です - [続きを読む](../remote-schemas.md)。 ### データベースイベントによるウェブフックの起動 データベースイベントから起動する非同期ビジネスロジックを追加します。 通知、Postgresからのデータパイプライン、または非同期に最適です - [続きを読む](../event-triggers.md)。 ### 派生データまたはデータ変換 PostgreSQLのデータを変換するか、あるいはその上でビジネスロジックを実行することでGraphQLエンジンを使用して問い合わせることができる別のデータセットを派生させる事ができます。[続きを読む](https://hasura.io/docs/1.0/graphql/manual/queries/derived-data.html). ## デモ [コミュニティ・サンプル](../community/sample-apps) ディレクトリにあるサンプルアプリケーションをチェックできます。 ### リアルタイムアプリケーション - Reactを使用して構築されたグループチャットアプリケーション。タイピングインジケーター、オンラインユーザー、新しいメッセージ通知が含まれます。 - [試してみよう](https://realtime-chat.demo.hasura.app/) - [チュートリアル](../community/sample-apps/realtime-chat) - [APIの参照](https://realtime-chat.demo.hasura.app/console) - 現在の場所を追跡できるアプリ。地図上を移動する乗り物の現在のGPS座標を表示します。 - [試してみよう](https://realtime-location-tracking.demo.hasura.app/) - [チュートリアル](../community/sample-apps/realtime-location-tracking) - [APIの参照](https://realtime-location-tracking.demo.hasura.app/console) - 常にに変化するデータを集約するリアルタイムダッシュボード。 - [試してみよう](https://realtime-poll.demo.hasura.app/) - [チュートリアル](../community/sample-apps/realtime-poll) - [APIの参照](https://realtime-poll.demo.hasura.app/console) ### 動画 * [サーバーにホストされたGitlabのインスタンスにGraphQLを追加](https://www.youtube.com/watch?v=a2AhxKqd82Q) (*3分44秒*) * [Auth0とGraphQLバックエンドに持つTodoアプリ](https://www.youtube.com/watch?v=15ITBYnccgc) (*4分00秒*) * [GitLab上のGitLab Authと動作するGraphQL](https://www.youtube.com/watch?v=m1ChRhRLq7o) (*4分05秒*) * [GPS位置情報の付いた1000万回の乗車のダッシュボード (PostGIS, Timescale)](https://www.youtube.com/watch?v=tsY573yyGWA) (*3分06秒*) ## サポート&トラブルシューティング ドキュメントとコミュニティは、ほとんどの問題のトラブルシューティングに役立ちます。あなたがバグに遭遇したか、または私達と連絡をとる必要があるならば、あなたは以下の方法の1つを使ってコンタクトすることができます: * サポート&フィードバック: [Discord](https://discord.gg/vBPpJkS) * 問題&バグトラッキング: [GitHub issues](https://github.com/hasura/graphql-engine/issues) * プロダクトアップデートをフォロー: [@HasuraHQ](https://twitter.com/hasurahq) * 直接話す [ウェブサイトチャット](https://hasura.io) 私たちはこのコミュニティの中でオープンで心地よい環境を達成することを約束します。 [行動規範](../code-of-onduct.md)をご覧ください。 セキュリティに関する問題はこちらから報告をお願いします。[詳細を読む](../SECURITY.md). ## 開発への参加 [開発者へのガイド](../CONTRIBUTING.md) を参照してください。 ## ブランド資産 Hasuraブランドの資産(ロゴ、Hasuraマスコット、バッジなどを使用)[ブランド資産](../assets/brand)フォルダにあります。自由に使用してください。 あなたが作ったアプリに"Powered by Hasura"を追加してもらえるととてもうれしいです!
```html ``` ## ライセンス GraphQLエンジンのコアは[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)(Apache-2.0)の下で提供されています。 全ての **その他のコンテンツ** ([`サーバー`](../server), [`クライアント`](../cli) と [`コンソール`](../console) ディレクトリ以外) は [MITライセンス](../LICENSE-community)の下に提供されます。 これは [`ドキュメント`](../docs) と [`コミュニティ`](../community) ディレクトリに入っているもの全てを含みます。