Atlas Data APIAtlas データAPI [非推奨]
データ APIは、標準の HTTPS requests を使用して Atlas にストアされたデータを安全に操作できるマネージド サービスです。データ API はデータベースに直接接続するものではありません。代わりに、API はクラスターとリクエストを送信するクライアントの間にある完全管理型のミドルウェア サービスです。
データ API を使用すると、次のような HTTPS をサポートする任意のプラットフォームから MongoDB Atlas に接続できます。
ウェブ ブラウザ
ウェブ サーバー
CI/CD パイプライン
モバイル アプリケーション
モノのインターネット デバイス
データ API を使用するために、データベース ドライバーや独自のライブラリをインストールする必要はありません。代わりに、次のような標準の HTTPS requests を送信します。
curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/insertOne" \ -X POST \ -H "Content-Type: application/ejson" \ -H "Accept: application/json" \ -H "apiKey: TpqAKQgvhZE4r6AOzpVydJ9a3tB1BLMrgDzLlBLbihKNDzSJWTAHMVbsMoIOpnM6" \ -d '{ "dataSource": "mongodb-atlas", "database": "learn-data-api", "collection": "hello", "document": { "text": "Hello, world!" } }'
{ "insertedId": "63dc56ac74ddb86ed3eb8474" }
エンドポイント
データ API は、次の 2 種類のエンドポイントをサポートしています。
データ API エンドポイントは、それぞれが MongoDB の操作を表す自動的に生成されるエンドポイントです。エンドポイントを使用すると、MongoDB データソース内のドキュメントの作成、読み取り、更新、削除、および集計を行えます。
エンドポイントの設定方法や呼び出し方法などの詳細については、「データ API エンドポイント」を参照してください。
カスタム エンドポイントは、書き込んだ Atlas 関数によって処理されるアプリ固有の API ルートです。カスタム エンドポイントを使用すると、ユースケースに特に適した操作を定義できます。たとえば、事前に定義された集計を実行するエンドポイントや、外部の Webhook サービスと統合するエンドポイントを作成できます。
エンドポイントの作成方法や呼び出し方法などの詳細については、「カスタム HTTPS エンドポイント」を参照してください。
データ API の仕組み
データ API リクエストは、find
や insertOne
などの従来のデータベース操作に似ている場合がありますが、データ API はデータベースに直接接続するものではありません。代わりに、データ API は、認証、承認、および正確性のチェックを追加して、許可された方法でのみデータがアクセスまたは変更されるようにします。これにより、ウェブ アプリなどの潜在的に脆弱なクライアントから Atlas のデータに安全にアクセスできるようになります。
受信リクエストごとに、データ API は次のことを行います。
呼び出し元のユーザーを認証する。これには、アクセス トークンの検証、ヘッダー認証情報によるログイン、または構成に基づいて特定のランタイムユーザーを直接割り当てることが含まれる場合があります。
リクエストを承認する。これにより、ユーザーは正しい形式のリクエストを送信し、エンドポイント承認スキームに基づいてリクエストされた操作を実行する権限を持っていることが保証されます。
リクエストされた操作を実行する。これには、生成されたエンドポイントを使用して Atlas でデータを読み取りまたは書き込みしたり、書き込んだカスタム関数を呼び出したりすることが含まれる場合があります。
Atlas でデータを読み取りまたは書き込みするリクエストの場合、データ API は、アプリで定義されたアクセス制御ルールとドキュメント スキーマも適用します。つまりユーザーは、読み取りおよび書き込みが許可されたデータにしかアクセスできません。無効な書き込み操作が含まれている場合、リクエストは失敗します。
HTTPS レスポンスを呼び出し元に返す。応答には、生成されたエンドポイント操作の結果またはカスタム エンドポイントから返されたデータが含まれます。リクエストでは、JSON 形式または EJSON 形式のどちらかで応答を受信することを選択できます。
データ API を使用する場合
サーバー アプリケーションの場合、特に高負荷でレイテンシの影響を受けやすいユースケースの場合は、MongoDB ドライバーを使用して Atlas に直接接続することをお勧めします。 データ API エンドポイントを介して呼び出される操作は、ドライバーを介して呼び出される対応する MongoDB 操作よりも完了に時間がかかります。 さらに、ドライバーによって、操作の実行方法に対する柔軟性と制御が向上します。 詳しくは、 MongoDB ドライバーのドキュメントをご覧ください。
次の場合には、データ API を使用することをお勧めします。
信頼できない Web アプリケーションまたはその他のクライアントから MongoDB 操作を実行する場合。
サーバー側の環境で MongoDB ドライバーを管理できない、または管理したくない場合。たとえば、一部のエッジ コンピューティング環境は、データベース ドライバーや接続プーリングをサポートしていません。
新しい機能を開発したいが、後で API レイヤーを作成し改良する前に、まずクライアント側で作業するための柔軟なソリューションを好む場合。
Atlas データアクセスをフェデレーティッド API ゲートウェイに統合する場合。
現在 Atlas Device SDK でサポートされていない環境から App Services に接続し、ワイヤプロトコル経由で接続するためにドライバーを使用しない場合。
制約
データ API のリクエストと応答には次の制約が適用されます。
リクエストは、実行時間が 300 秒後にタイムアウトします。
データ APII 応答ペイロードのサイズは 350 MB に制限されています。