Repolode
PostgREST

PostgREST/postgrest

バックエンドコードを書かずに、既存のPostgreSQLデータベースをRESTful APIに変換するスタンドアロンサーバー。

スター
27,726
フォーク
1,234
未解決の Issue
410
最終コミット
17 時間前

これは何?

PostgRESTは、既存のPostgreSQLデータベースから完全なRESTful APIを提供します。データベース内のテーブル、ビュー、関数がHTTP経由で公開されるため、基本的なCRUDやクエリのために独自のAPIレイヤーを書く必要がありません。

処理の大部分はデータベースに委ねられます。レスポンスはSQL内でJSONにシリアライズされ、認可にはデータベースで定義されたPostgreSQLのロールが使われ、データ検証はデータベースの制約に基づいて行われます。認証にはJSON Web Tokensを使用し、サーバーは各リクエストを認証済みのデータベースユーザーとして実行します。APIのバージョン管理にはデータベーススキーマを使い、OpenAPIドキュメントは自動生成されます。

サーバーはHaskellで実装され、コネクションプールを使用します。また、ステートレスなので水平スケールが可能です。複数のプラットフォーム向けバイナリとDockerイメージが提供されています。

主な機能

  • 01PostgreSQLデータベース内のテーブル、ビュー、関数からREST APIを自動生成します。
  • 02認可をデータベースのロールに、認証をJWTに委ねます。
  • 03APIのOpenAPIドキュメントを生成します。
  • 04データベーススキーマを使ったAPIのバージョン管理に対応します。
  • 05HTTPのRangeヘッダーを使って、行数とページ分割された結果を返します。
  • 06データベースのコネクションプールを備えたステートレスサーバーとして動作します。

ユースケース

  • 既存のPostgreSQLスキーマを使って、手早くCRUDバックエンドを構築する。
  • 基盤となるテーブルを変更しながら、データベースビューを通じて安定した公開APIを提供する。
  • サーバー側のエンドポイントを書かずに、フロントエンドアプリ向けのデータAPIを提供する。

クイックスタート

  1. 1

    お使いのプラットフォーム向けのインストール手順を読むか、Dockerを使用してください

  2. 2

    helpコマンドで利用可能なオプションを確認してください

    postgrest --help

使う前に知っておきたいこと

  • 既存のPostgreSQLデータベースが必要です。データベースは提供されません。
  • 認可はデータベースのロールとスキーマ設計に依存するため、セキュリティはPostgreSQLで設定する必要があります。

トピック

よくある質問

postgrest とは?
バックエンドコードを書かずに、既存のPostgreSQLデータベースをRESTful APIに変換するスタンドアロンサーバー。 PostgRESTは、既存のPostgreSQLデータベースから完全なRESTful APIを提供します。データベース内のテーブル、ビュー、関数がHTTP経由で公開されるため、基本的なCRUDやクエリのために独自のAPIレイヤーを書く必要がありません。
postgrest は無料で使えますか?ライセンスは?
postgrest は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
postgrest は今もメンテナンスされていますか?
活発にメンテナンス中。postgrest の最終コミットは 2026年10月20日 です。
postgrest は何に使えますか?
既存のPostgreSQLスキーマを使って、手早くCRUDバックエンドを構築する。 基盤となるテーブルを変更しながら、データベースビューを通じて安定した公開APIを提供する。 サーバー側のエンドポイントを書かずに、フロントエンドアプリ向けのデータAPIを提供する。
postgrest のインストール方法は?
お使いのプラットフォーム向けのインストール手順を読むか、Dockerを使用してください helpコマンドで利用可能なオプションを確認してください: postgrest --help
postgrest はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/PostgREST/postgrest

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト