REST API
Morphでは、作成されたデータベーススキーマに基づいて自動的にAPIを生成し、提供しています。これにより、追加のコードを実装することなく、APIを通じてMorphのデータベースを利用したデータ連携やアプリケーション構築が可能です。
APIはRESTful形式で設計されており、Morphのダッシュボード上から作成したAPIキーを利用してセキュアにアクセスできます。
特徴
MorphのデータベースAPIは、PostgRESTによって提供され、以下のようなメリットを提供します:
- 効率的な開発および連携:
- データベーススキーマから直接APIが生成されるため、バックエンド開発の時間とコストを大幅に削減します。
- 自動更新/即時性:
- データベーススキーマの変更が即座にAPIに反映されるため、手動での同期やメンテナンスが不要です。
- パフォーマンス:
- 軽量でステートレスな設計により、SQLクエリを直接実行して、非常に高速なデータアクセスを実現します。
- 柔軟性:
- シンプルなCRUD操作に加えて、クエリの組み合わせやフィルタリング、ソートなどの複雑な操作も簡単に行えます。
- セキュリティ:
- 厳格な型チェックとクエリパラメータの自動エスケープ処理により、SQLインジェクションなどの攻撃から高いレベルの保護を提供します。
RESTfulアーキテクチャ
このAPIは標準的なHTTPメソッドを採用しており、RESTfulアーキテクチャに基づいた直感的で使いやすいCRUD操作を提供します。この設計により、様々なプログラミング言語やアプリケーションとの幅広い連携が可能となり、開発者は容易にシステムを統合できます。
さらに、以下の高度な機能も提供されます:
- フィルタリングと検索:
- 複雑なクエリパラメータを使用して、特定の条件に一致するレコードだけを精密に抽出できます。
- ソートとページネーション:
- 結果セットをソートし、ページネーションを利用してデータを小容量に分割して提供します。
- リレーショナルクエリ:
- 複数の関連するテーブルからデータを単一のクエリで取得できます。これにより、リレーショナルデータベースの関連を活かしたデータ取得が複数のAPI呼び出しを必要とせずに可能となります。
- アグリゲーション:
- グループ化、カウント、平均、最大値、最小値などの集計機能をクエリに含めることができます。
- バッチリクエスト:
- 複数のAPI呼び出しを単一のHTTPリクエストで実行し、ネットワーク遅延を減らし、効率的なデータ処理を実現します。
これら以外にも、PostgRESTにより様々な機能が提供されます。詳しくは下記の参考資料をご確認ください。
クイックスタート
MorphのAPIを使用して基本的なCRUD操作(作成、読み取り、更新、削除)を実行する方法をステップバイステップで説明します。
この例ではcURLコマンドを用いてAPIを呼び出しますので、お手元のターミナル環境やPostmanなどのAPIクライアントツールにコマンドをペーストしてお試しください。
API呼び出し
※[**Your_DatabaseID**]
, [Your_Table_Slug]
, [Your_API_Key]
は置換してご利用ください。
作成 (Create):
データを新しく作成するには、POSTメソッドを使用します。
読み取り (Read):
テーブルからデータを読み取るには、GETメソッドを使用します。
更新 (Update):
既存のデータを更新するには、PUTメソッドを使用します。
削除 (Delete):
データを削除するには、DELETEメソッドを使用します。
これら以外にも、PostgRESTによりお客様の用途に応じて様々なクエリパターンを実現することができます。詳しくは下記の参考資料をご確認ください。
参考資料
API URL
APIのURLは以下のような形式となります。
BaseURL: https://beta-api.morphdb.io/v0/rest/[Your_DatabaseID]/
データベースID([Your_DatabaseID]
)の確認方法
Morphのワークスペース画面内で、 /workspace
に続いて表示されているのがデータベースIDです。
https://beta-app.morphdb.io/workspace/[database_id]?selected...
テーブル名([**Your_Table_Name**]
)の確認方法
データベーススキーマ内の特定のテーブルに対するクエリを行う場合は、APIのURLは以下のような形式となります。
URL: https://beta-api.morphdb.io/v0/rest/[Your_DatabaseID]/[Your_Table_Name]
サイドメニューの Built-in Tables の中に表示されているのがテーブル名です。テーブルを選択した際に、エディターのタブに表示されるのもテーブル名です。