Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas Administration API リファレンス

項目一覧

  • HTTPメソッド
  • JSON
  • リンク
  • リスト
  • エンベロープ
  • Pretty Printing(整形表示)
  • 応答コード
  • Errors
  • プロジェクトID
  • 認証
  • レート制限
  • 次のステップ

Atlas Administration API は、 REST アーキテクチャ スタイルの原則に従い、Atlas の機能へのプログラムによるアクセスを可能にする多数の内部リソースを公開します。

Atlas ウェブ インターフェースを通じて行われた変更と同様、Atlas Administration API を通じて行われた変更には Atlas の請求が適用されます。 料金が発生する場合は、Atlas に登録されている有効なクレジットカードが必要です。または、アカウントがロックされるリスクがあります。

APIには、次の機能があります。

リソースのバージョン管理

Atlas はバージョン管理された Atlas Administration API を提供します。これには、個々の Atlas Administration API リソース レベルでのバージョン管理が含まれます。 Atlas Administration API の詳細については、これらのリソースと次のセクションを使用してください。

JSONエンティティ
すべてのエンティティはJSONで表現されます。
ブラウザ可能なインターフェース
一貫性のあるリンク メカニズムを使用すると、ルート リソースから開始し、関連リソースへのリンクをたどって、Atlas Administration API 全体をブラウザできます。
HTTPS -only
HTTPS経由でのみ Atlas Administration API にアクセスでき、ネットワーク経由で送信されるすべてのデータがTLSを使用して完全に暗号化されることが保証されます。
ユーザー アクセス制御

各Atlas userのAtlas管理API機能は、 Atlas Atlas userロールによって付与される権限と一致します。

APIネットワーク アクセス リスト

Atlas は、 APIアクセス リスト を通じて Atlas Administration APIへのアクセスを保護できます。このリストは、特定のIPアドレスまたは CIDR アドレスへのAPIへのアクセスを制限します。各認証方法には、独自の Atlas Administration APIアクセス リストがあります。Atlas UIを使用して新しい組織を作成すると、Atlas ではデフォルトでAPIアクセス リストの要求が有効になります。

Tip

以下も参照してください。

すべてのリソースは、次の一般的なHTTPメソッドのサブセットをサポートしています。

方式
目的
GET
リソースのJSON表現を取得します。
POST
指定されたJSON表現を使用して新しいリソースを作成します。
PUT
リソースを指定されたJSON表現で置き換えます。
PATCH
提供されたJSON表現を使用して、リソース内の指定されたフィールドを更新します。
DELETE
リソースを削除します。
HEAD
リソースのJSON表現なしでレスポンス ヘッダーを返します。

すべてのエンティティはJSONで表されます。 次のルールと規則が適用されます。

  • コンテンツタイプリクエストヘッダー

    POSTまたはPUTを介してサーバーにJSONを送信する場合は、必ず正しいコンテンツタイプのリクエスト ヘッダーを指定してください。 Content-Type: application/json

  • 無効なフィールド

    無効なフィールドは無視されるのではなく拒否されます。 たとえば、新しいエンティティを作成してフィールドの 1 つのスペルをうっかり間違えた場合、または既存のエンティティを更新して変更できないフィールドを含めようとすると、サーバーは 400 のステータス コードと以下を示すエラーメッセージを返します。フィールドが無効です。

  • ISO-8601-形式の日付

    すべての日付は、UTC で指定された ISO- 形式の文字列として返されます。8601サーバーに日付を送信する場合(つまり、POST または PATCHリクエストエンティティのクエリ パラメータまたはフィールドとして)は、ISO- 8601 形式の日付を使用します。タイムゾーンを指定しない場合は、UTC が想定されます。 ただし、あいまいさを避けるために、タイムゾーン指定子を含めることを強くお勧めします。

  • BSON タイムスタンプ

    場合によっては、タイムスタンプがBSON タイムスタンプとして返されることもあり、特にバックアップ リソースに含まれます。 これらは、 JSONドキュメントでは 2 つのフィールドを持つオブジェクトとして表されます。date は 2 番目の粒度を持つ UTC の ISO-8601 形式の日付stringで、increment は 32 ビット整数です。

  • 数値を含むフィールドのフィールド名

    特定の単位の数値を含むフィールドには、使用される単位を明確に区別するために名前が付けられます。

  • 空のフィールド

    現在の値がないフィールドは、適切なデフォルト値とともに返されます。

    認識可能なデフォルト値を持たないフィールドは、エンティティから省略されます。

  • フィールドの順序

    サーバーによって返されるJSONドキュメント内のフィールドは特定の順序ではなく、順序が変更される可能性があります。 フィールドの順序に依存しないでください。

各リソースには、サブリソースや関連リソースへの 1 つ以上のリンクが含まれています。 リンクは、リンク関係オブジェクトの配列であるエンティティのlinksフィールドに配置されます。 各リンク関係には 2 つのフィールドがあります。

フィールド
説明
rel
関係の名前(またはタイプ)。 これらの多くは拡張関係タイプと見なされ、 http://mms.mongodb.comというプレフィックスが付きます。
href
ターゲットURL

すべてのエンティティには、 selfと呼ばれるリンク関係が少なくとも 1 つ含まれます。これはつまり、独自のURLです。 エンティティがリストの一部である場合、そのエンティティにはselfリンク関係のみが含まれます。

詳細については、「 Web リンク仕様 」を参照してください。 。この仕様ではHTTPレスポンス ヘッダーにリンクを含めるための形式について説明していますが、これは必須ではないことに注意してください。 Atlas Administration API を簡単に参照できるようにするには、レスポンス ヘッダーではなくレスポンス本文にリンクを含めます。

一部のリソースはエンティティのリストを返します。 応答でエンティティのリストが要求される場合、結果は次のクエリ パラメーターに囲まれたバッチで返されます。

フィールド
説明
pageNum
ページ番号(1 から始まる)。 指定しない場合、デフォルトは1になります。
itemsPerPage
1 ページあたりに返す項目の数は最大 500 です。 指定しない場合、デフォルトは100になります。
includeCount
レスポンスがtotalCountフィールドを返すかどうかを指定します。 指定しない場合、デフォルトはtrueです。

応答エンティティには、次の 3 つのフィールドが含まれています。

フィールド
説明
totalCount
結果セット全体に含まれる項目の合計数。
results
エンティティ ドキュメントの配列である結果セット。
links
1 から 3 つのリンク関係が含まれます: 前の結果ページではprevious (最初のページは省略)、次のページの結果ではnext (最後のページでは省略)、現在のページでは とselfが表示されます(常に存在)。

エンティティのリストのリクエストを行って結果がない場合、Atlas Administration API は 200 のステータス コードを返し、 results配列は空になります。 この場合、エンティティのリストが将来のある時点で空ではなくなる可能性があるため、この場合は 404 では応答しませ。 ただし、存在しないコンテキストのエンティティのリスト(存在しないプロジェクトのホストのリストなど)を要求すると、応答ステータス404 になります。

一部のクライアントは、 HTTPレスポンス ヘッダーやステータス コードにアクセスできない場合があります。 その場合は、レスポンスに「エンベロープ」を含めることをリクエストできます。これはJSONドキュメントの追加レイヤーで、レスポンス ヘッダーに通常含まれる関連詳細が含まれます。 デフォルトでは、Atlas Administration API のエンベロープに応答は含まれませ。 リクエストするには、クエリ パラメータenvelope=trueを追加します。

単一のエンティティを含む応答の場合、エンベロープには 2 つのフィールドが含まれます。

フィールド
説明
status
HTTPステータス コード。
content
要求されたエンティティ。

エンティティのリストを含む応答の場合、結果をラップするエンベロープはすでにあるため、 envelope=trueを指定すると既存のエンベロープにstatusフィールドのみが追加されます。

デフォルトでは、サーバーによって返されるJSONから余計な空白が削除されます。 pretty-printed JSONをリクエストするには、リクエストにpretty=trueクエリ パラメータを追加します。

curl --user '{USERNAME}:{APIKEY}' --digest \
--header 'Accept: application/json' \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v1.0?pretty=true"

応答では、次のような標準のHTTP応答コードが使用されます。

コード
意味
ノート
200
OK
リクエストは成功しました。 これは通常、成功したGETリクエストへの応答です。
201
作成済み
新しいリソースが作成されました。 これは通常、成功したPOSTリクエストへの応答です。
202
承認済み
非同期操作のリクエストが受け入れられました。
400
無効なリクエスト
クライアント リクエストで問題が発生しました。
401
許可されていない
認証は必要ですが、リクエストに含まれていません 。 通常、これは認証情報がリクエストから省略されたか、提供された認証情報が正しくないか、特定の認証方法に関連付けられたユーザーが要求されたリソースにアクセスすることを許可されていないことを意味します。
403
Forbidden
指定されたリソースへのアクセスは許可されていません。
404
見つかりません
要求されたリソースが存在しない。
405
メソッドは許可されていません
HTTPメソッドは指定されたリソースではサポートされていません。 各リソースがサポートするのはHTTPメソッドのサブセットのみであることに注意してください。 たとえば、ルート リソースをDELETEすることはできません。
409
競合
これは、そのプロパティの同じ値を持つ既存のエンティティがすでに存在する場合に一意であるエンティティのプロパティを作成または変更するための リクエストに対する応答です。
5x
さまざまなサーバーエラー
予期しない問題が発生しました。 後でもう一度試し、Atlas サポートへの通知を検討してください。

リクエストがエラーを返す場合、レスポンス本文にはJSONドキュメントが含まれます。 このドキュメントには、Atlas Administration API リクエストが失敗した理由に関する詳細が含まれています。 ドキュメントには、次の 5 つのパラメータが含まれています。

Parameter
データ型
説明
詳細
string
誤った Atlas Administration API リクエストに対して Atlas が返す、人間が判読可能な説明。
エラー
integer
ステータス コード HTTP レスポンスのヘッダーに返された。
errorCode
string
誤った Atlas Administration API リクエストを表す名前付き定数。 これらの定数の詳細については、「 Atlas Administration API エラー コード 」を参照してください。
パラメーター
配列
Atlas Administration API リクエストに含まれるパラメータのリスト。
理由
string
ステータス コードの定義 HTTP レスポンスのヘッダーに返された。

誤った形式でリクエストを行うと、Atlas は次のレスポンス本体を返します。

1{
2 "detail" : "Cannot find resource /api/atlas/v1.0/softwareComponents/version.",
3 "error" : 404,
4 "errorCode" : "RESOURCE_NOT_FOUND",
5 "parameters" : [ "/api/atlas/v1.0/softwareComponents/version" ],
6 "reason" : "Not Found"
7}

プロジェクト ID は、Atlas プロジェクトを一意に識別する string 値です。

Atlas プロジェクトは、以前は「グループ」として識別されていました。 一部の Atlas エンドポイントは、リクエスト パス、クエリ、またはボディ パラメータの一部としてgroupまたは{GROUP-ID}を参照します。 {GROUP-ID}を必要とするエンドポイントについては、代わりにプロジェクト ID を指定します。

プロジェクト ID を検索するには、次の手順に従います。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。

    [ Project Settings ]ページが表示されます。

2

Atlas Administration APIでは、リクエストを認証するために 2 つの方法 ( APIキーまたはサービスアカウント)のいずれかを使用します。これにより、ユーザー名とパスワードとして機能するキーとアクセス トークンがネットワーク経由で送信されることがなくなります。 詳細については、 「Atlas Administration API認証」 を参照してください。

使用方法の詳細については、「 APIリクエストの作成 」を参照してください。

特定のリソースでは、1 分あたりに処理できるリクエスト数が制限されます。

これらのリソースに対して、Atlas はプロジェクトごとに100 1 分あたり最大 のリクエストを許可します。Atlas Administration API認証メソッドは組織に属しますが、複数のプロジェクトへのアクセス権を付与できます。

A と B の 2 人のユーザーを考えてみましょう。ユーザー A はプロジェクト X に属し、ユーザー B はプロジェクト X と Y に属しています。

  • 午後 1 時、ユーザー A はプロジェクト X のレート制限されたリソースに 50 回のリクエストを送信し、すべてが 1 時 00 分、20 時までに完了します。

  • 午前 1 時 00分: 30 分に、ユーザー B はプロジェクト X のレート制限されたリソースに対して 60 回のリクエストを実行しようとします。

    ユーザー A はプロジェクト X の 1 時 00 分以内に 50 個のリクエストをすでに使用しているため、ユーザー B が試みた最後の 10 個のリクエストは拒否されます。

    ただし、各プロジェクトが個別のリクエスト カウンターを保持しているため、ユーザー B はプロジェクト Y のレート制限されたリソースにリクエストを行うことができます。

  • 午後 1 時 1:00 になると、レート制限に使用されるリクエスト カウンターは 1 分ごとにリセットされるため、プロジェクト X へのリクエストが続行される可能性があります。

レート制限を超えた場合、Atlas Administration API は429 を返します (リクエストが多すぎる) HTTP ステータス コード。

使用を開始するには、「 Atlas Administration API の使い始める 」を参照してください。

プログラムによる Atlas Administration API へのアクセスを管理するには、次のいずれかの手順を参照してください。

戻る

プロジェクトのアクセス