hasuraとpostgresqlでバックエンドを構築する方法
堅牢なバックエンドの構築には、多くの場合、CRUDの運用、承認、およびビジネスロジックの広範なコーディングが含まれます。これは、時間のかかるプロセスです。 この記事では、HasuraとPostgreSQLがバックエンド開発を合理化し、最小限のコーディングの取り組みでより高速なアプリの起動を可能にする方法について説明します。 オープンソースのGraphQLエンジンである
Hasuraは、データベーススキーマからGraphQLとREST APIを自動的に生成します。 データモデリング、リアルタイムクエリ、イベントプログラミング、ロールベースの承認、およびGraphQLアクションを介したカスタムビジネスロジック実行をサポートしています。 強力なオープンソースリレーショナルデータベースであるPostgreSQLは、OracleおよびMicrosoft SQL Serverに匹敵するエンタープライズレベルの機能を提供し、大規模なアプリケーションに信頼できる選択肢となっています。 NetflixやSpotifyなどの企業が使用しているのは、その機能を強調しています。 Hasuraは他のデータベースをサポートしていますが、この記事では、アクセシビリティとオープンソースの性質のためにPostgreSQLに焦点を当てています。 MySQLサポートが計画されています このガイドは、Webおよびモバイルアプリ向けのスケーラブルなバックエンドを構築するためのHasuraの機能を強調しています。 また、SQLを介してアクセスされるPostgreSQLの機能が複雑な計算と分析を実行し、カスタムサーバー側のコードの必要性を減らす方法も示しています。 重要な利点:
迅速なバックエンド開発:Hasuraの自動生成APIはコーディング時間を大幅に短縮します。
postgreSqlパワー:- データの整合性とパフォーマンスを強化するためのPostgreSQLの高度な機能(テーブル継承、並行性制御、JSON/空間データ型)を活用してください。
- リアルタイム機能:Hasuraのリアルタイムクエリ、イベントプログラミング、およびロールベースの承認は、非常にレスポンシブなアプリケーションを作成します。
- 簡単な展開:監視やキャッシングなどの機能を備えたスケーラブルで安全なグローバルに分散したアプリケーションのために、ローカル開発またはhasuraクラウドを使用してhasuraを展開します。 包括的なWebコンソール:
- Hasuraの直感的なWebコンソール内のデータモデリング、CRUD操作、および複雑なクエリを管理します。 認証およびファイルストレージプロバイダーと統合します 合理化されたワークフロー: Hasuraの移行ツールと、開発と生産の間のシームレスな移行のために環境のステージングを利用して、CI/CDをサポートします。
- なぜpostgresql?
- を選択するのか
PostgreSQLのようなリレーショナルデータベースは、スキーマモデリング、参加操作、酸トランザクションなど、データの整合性のために重要な他のデータベースタイプよりも利点を提供します。 PostgreSqlはさらに優れています:
- テーブル継承:効率的なデータモデリング。
- Advanced Concurrency Control:マルチユーザー環境で大量のデータを効果的に書き込みます。
- フォールトトレランスとデータの整合性:データの破損リスクを削減します。
- 一意のデータ型:JSONおよび空間データ型をサポートし、さまざまなアプリケーションに有益です。 PostgreSQLは、分析タスクのカスタム関数とトリガーを実行し、個別のサーバー側コードの必要性を排除する計算サーバーとしても機能します。 これは、
- ビュー:
- 複雑なクエリを簡素化します。 関数と演算子:
- 日付のフォーマット、パターンマッチング、算術演算を実行します。 拡張機能: postgreSQLの機能(例:postgis)。
- 手続き型言語: ユーザー定義の関数とストアドプロシージャを書き込む(例:pl/pgsql)。
- Hasuraは、GraphQLを介してこのPostgreSQLロジックを公開し、FrontEndアプリケーションに簡単にアクセスできるようにします。
例1(オンラインユーザービュー):現在アクティブなユーザーを取得するビュー:
- 例2(ポストGISによるジオロケーション):
CREATE OR REPLACE VIEW "public"."online_users" AS SELECT users.id, users.last_seen FROM users WHERE (users.last_seen >= (now() - '00:00:30'::interval));
ログイン後にコピー- hasuraとは?
Hasuraは、データベースのAPIを生成するオープンソースのリアルタイムGraphQLエンジンです。そのWebコンソールでは、SELECT id, name, address, geom FROM Seattle_Starbucks WHERE ST_DWithin(geom, ST_MakePoint(-122.325959,47.625138)::geography, 1000);
ログイン後にコピーを許可します
スキーマモデリング:テーブルの作成、関係の定義、およびデータの管理
- crud操作:
- アクションの作成、読み取り、更新、削除を実行します。 ロールベースのアクセス制御:
- 粒状許可を実装します GraphQL/RESTエンドポイントの作成: データのAPIを生成します。
- sql実行: カスタムsqlクエリを実行します。
- アクション&トリガー定義: タスクを自動化し、イベントを処理します。
- 注:Hasuraは、個別の認証プロバイダー(Auth0、Firebaseなど)とファイルストレージサービスとの統合が必要です。 nhostは統合されたソリューションを提供します。
- docker:ローカル開発に推奨され、簡単なセットアップとレートの制限なし。
- hasuraクラウド:監視やキャッシュ機能を含む、スケーラビリティ、セキュリティ、およびグローバル配信を備えた展開を簡素化します。 制限付きの無料ティアが利用可能です。
hasura機能(詳細な概要):
- データマネージャー:テーブルの作成、関係の定義、データ型(JSONおよびカスタムタイプを含む)の管理のためのVisual Schema Designer。
- 挿入、選択、更新、および削除の粒状権限を備えた役割ベースのアクセス制御。
-
突然変異:
トランザクションをサポートして挿入、upSert、更新、削除操作を実行します。
- subscriptions:WebSocketsを介してGraphQLサブスクリプションを使用してリアルタイムデータ更新を実装してください。
- リモートスキーマ:データとロジックについては、サードパーティAPIと統合します。 アクション:
- プログラミング言語を使用してWebHooksを介してカスタムビジネスロジックを実行します。 イベントトリガー: データベースイベントに基づいてWebhooksを呼び出します(挿入、更新、削除)。 手動の呼び出しをサポートしています。
- スケジュールされたトリガー: 定期的に(Cron)またはWebhooks経由で1回(1回限り)タスクを実行します。
- 移行と環境:
- データベースとHasuraメタデータの移行ファイルを使用してスキーマの変更を管理し、CI/CDワークフローをサポートしています。
展開オプション:
- hasuraクラウド:
コンソール内でさまざまなGraphQLクエリ(シンプル、ネスト、集約、フィルタリング)を実行します。 外部ホスティング:
Heroku、Digital Ocean、Render、Azure、Kubernetes、AWS(より複雑な)。- nhost:postgreSQL、hasura、認証、ストレージを含むオールインワンBAASソリューション。
- 概要:
hasuraとpostgreSqlは、迅速なバックエンド開発のための強力な組み合わせを提供します。 コーディングの努力の削減、リアルタイム機能、堅牢な機能により、スケーラブルで保守可能なアプリケーションを構築するための魅力的なソリューションになります。 あらゆる面でいくつかの代替案ほど機能が豊富ではありませんが、その使いやすさ、パフォーマンスに焦点を当て、オープンソースの性質が重要な利点です。
よくある質問(FAQS):(提供されたFAQは既に包括的でよく書かれています。変更は必要ありません。)
以上がhasuraとpostgresqlでバックエンドを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
