Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas 관리 API 참조

이 페이지의 내용

  • HTTP 메서드
  • JSON
  • 연결
  • 목록
  • Envelopes
  • Pretty Printing
  • 응답 코드
  • 오류
  • 프로젝트 ID
  • 인증
  • 속도 제한
  • 다음 단계

Atlas Administration API는 REST 아키텍처 스타일의 원칙을 따라 Atlas의 기능에 프로그래밍 방식으로 액세스할 수 있는 여러 내부 리소스를 노출합니다.

Atlas 웹 인터페이스를 통해 변경한 내용과 마찬가지로 Atlas 관리 API를 통해 변경한 사항에도 Atlas 청구서 가 적용됩니다. 청구가 발생하는 경우, Atlas에 등록된 유효한 신용 카드가 있어야 하며 그렇지 않으면 계정이 잠길 위험이 있습니다.

API에는 다음과 같은 기능이 있습니다.

리소스 버전 관리

Atlas는 버전이 지정된 Atlas 관리 API를 제공하며, 여기에는 개별 Atlas 관리 API 리소스 수준에서의 버전 관리가 포함됩니다. 이 리소스와 다음 섹션을 사용하여 Atlas 관리 API에 대해 자세히 알아보세요.

JSON 엔터티
모든 엔터티는 JSON 으로 표현됩니다.
탐색 가능한 인터페이스
일관된 연결 메커니즘을 사용하면 루트 리소스에서 시작하여 관련 리소스에 대한 링크를 따라 전체 Atlas 관리 API를 탐색할 수 있습니다.
HTTPS - 전용
HTTPS를 통해서만 Atlas 관리 API에 액세스할 수 있으며, 이를 통해 네트워크를 통해 전송되는 모든 데이터는 TLS를 사용하여 완전히 암호화됩니다.
사용자 액세스 제어

각 Atlas user의 Atlas 관리 API 기능은 해당 Atlas Atlas user 역할에 의해 부여된 권한과 일치합니다.

예시

API 네트워크 액세스 목록

Atlas 는 API 액세스 목록을 통해 Atlas 관리 API 에 액세스 를 보호할 수 있습니다. 이 목록은 API 에 대한 액세스 를 특정 IP 또는 CIDR 주소로 제한합니다. 각 인증 방법에는 고유한 Atlas 관리 API 액세스 목록이 있습니다. Atlas UI 를 사용하여 새 조직 을 만들면 Atlas 는 기본값 API 액세스 목록 요구 사항을 활성화합니다.

다음도 참조하세요.

모든 리소스는 다음과 같은 일반적인 HTTP 메서드의 하위 집합을 지원합니다.

메서드
목적

GET

리소스의 JSON 표현을 검색합니다.

POST

제공된 JSON 표현을 사용하여 새 리소스를 만듭니다.

PUT

리소스를 제공된 JSON 표현으로 바꿉니다.

PATCH

제공된 JSON 표현을 사용하여 리소스에서 지정된 필드를 업데이트합니다.

DELETE

리소스를 제거합니다.

HEAD

리소스의 JSON 표현 없이 응답 헤더를 반환합니다.

모든 엔터티는 JSON 으로 표시됩니다. 다음 규칙과 관례가 적용됩니다.

  • 콘텐츠 유형 요청 헤더

    POST 또는 PUT 을 통해 서버에 JSON 을 보낼 때는 올바른 콘텐츠 유형 요청 헤더 Content-Type: application/json를 지정해야 합니다.

  • 잘못된 필드

    유효하지 않은 필드는 무시 되지 않고 거부 됩니다. 예를 들어 새 엔터티를 만들려고 할 때 필드 중 하나의 철자를 잘못하거나 기존 엔터티를 업데이트하려고 시도할 때 수정할 수 없는 필드를 포함하면 서버는 400 상태 코드와 다음을 나타내는 오류 메시지로 응답합니다. 필드가 유효하지 않습니다.

  • ISO-8601 형식의 날짜

    모든 날짜는 UTC로 지정된ISO- 형식의 문자열로 반환됩니다.8601 서버 에 날짜를 보낼 때(예: POST 또는 PATCH 요청 엔터티의 쿼리 매개변수 또는 필드로) ISO8601형식의 날짜를 사용합니다. 구역 를 지정하지 않으면 UTC가 사용됩니다. 그러나 모호하지 않도록 표준 구역 지정자를 포함하는 것이 좋습니다.

  • BSON 타임스탬프

    경우에 따라 타임스탬프가 BSON 타임스탬프 로 반환되는 경우가 있는데, 특히 백업 리소스에서 많이 나타납니다. 이는 문서에서 두 개의 필드가 있는 객체로 JSON 표시되며, 이 두 필드는date(초 단위로8601 string 세분화된 UTC의 ISO 형식의 날짜 increment 32) 및 ( 비트 정수)입니다.

  • 숫자가 포함된 필드의 필드 이름

    특정 단위의 숫자 값이 포함된 필드는 사용 중인 단위를 명확히 구분할 수 있도록 이름이 지정됩니다.

  • 빈 필드

    현재 값이 없는 필드는 적절한 기본값과 함께 반환됩니다.

    적절한 기본값이 없는 필드는 엔터티에서 생략됩니다.

  • 필드 순서

    서버가 반환하는 JSON 문서의 필드는 특정한 순서가 없으며 순서는 변경될 수 있습니다. 필드의 순서에 의존하지 마세요.

각 리소스에는 하위 리소스 및/또는 관련 리소스에 대한 링크가 하나 이상 포함되어 있습니다. 링크는 링크 관계 객체의 배열인 엔터티의 links 필드에 배치됩니다. 각 링크 관계에는 두 개의 필드가 있습니다.

필드
설명

rel

Name (or type) of the relation. 이 중 상당수가 확장 관계 유형으로 간주되며 앞에 http://mms.mongodb.com 이 붙습니다.

href

대상 URL.

모든 엔터티에는 자체 URLself 이라는 링크 관계가 하나 이상 포함되어 있습니다. 엔터티가 목록의 일부인 경우에는 self 링크 관계만 포함됩니다.

자세한 내용은 웹 연결 사양 을 참조하세요. 사양에 HTTP 응답 헤더에 링크를 포함하는 형식이 설명되어 있지만, 반드시 링크를 포함해야 하는 것은 아닙니다. 쉽게 탐색할 수 있도록 Atlas 관리 API는 응답 헤더가 아닌 응답 본문에 링크를 포함합니다.

일부 리소스는 엔터티 목록을 반환합니다. 응답에서 엔터티 목록이 예상되는 경우 결과는 다음 쿼리 매개변수에 의해 제한된 일괄 처리로 반환됩니다.

필드
설명

pageNum

페이지 번호(1 기준). 지정하지 않으면 기본값은 1 입니다.

itemsPerPage

페이지당 반환할 항목 수(최대 500개)입니다. 지정하지 않으면 기본값은 100 입니다.

includeCount

응답에서 totalCount 필드를 반환할지 여부를 지정합니다. 지정하지 않으면 기본값은 true 입니다.

응답 엔터티에는 세 개의 필드가 포함되어 있습니다.

필드
설명

totalCount

전체 결과 집합에 있는 항목의 총 개수입니다.

results

엔터티 문서의 배열인 결과 집합입니다.

links

1~3개의 링크 관계를 포함합니다: 결과의 이전 페이지의 경우 previous (첫 페이지의 경우 생략됨), 결과의 다음 페이지의 경우 next (마지막 페이지의 경우 생략), 및 현재 페이지에 대해 self 를 입력합니다(항상 표시됨).

엔터티 목록을 요청했는데 결과가 없는 경우 Atlas 관리 API는 200 상태 코드로 응답하고 results 배열이 비어 있게 됩니다. 이 경우 404로 응답하지 않는데 , 이는 엔터티 목록이 나중에 비어 있지 않을 수도 있는 점 때문입니다. 그러나 존재하지 않는 컨텍스트의 엔터티 목록(예: 존재 하지 않는 프로젝트의 호스트 목록)을 요청하면 404 응답 상태가 됩니다.

일부 클라이언트는 HTTP 응답 헤더 및/또는 상태 코드에 액세스하지 못할 수 있습니다. 이 경우 응답에 '엔벨로프(envelope)'를 포함하도록 요청할 수 있는데, 엔벨로프는 단순히 JSON 문서의 추가 정보 계층이며 일반적으로 응답 헤더에 있는 모든 관련 세부 정보를 포함합니다. 기본적으로 Atlas 관리 API는 엔벨로프에 응답을 포함하지 않습니다 . 요청하려면 쿼리 매개변수 envelope=true 를 추가하기만 하면 됩니다.

단일 엔터티가 포함된 응답의 경우 엔벨로프에는 다음과 같은 두 개의 필드가 포함됩니다.

필드
설명

status

HTTP 상태 코드.

content

요청된 엔터티입니다.

엔터티 목록이 포함된 응답의 경우 결과를 래핑하는 엔벨로프가 이미 있으므로 envelope=true 를 지정하면 기존 엔벨로프에 status 필드만 추가됩니다.

기본적으로 서버가 반환하는 JSON 에서 불필요한 공백은 제거됩니다. 깔끔하게 출력된 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

확인

요청이 성공했습니다. 이는 일반적으로 성공적인 GET 요청에 대한 응답입니다.

201

생성됨

새 리소스가 생성되었습니다. 이는 일반적으로 성공적인 POST 요청에 대한 응답입니다.

202

수락됨

비동기 작업에 대한 요청이 수락되었습니다.

400

잘못된 요청

클라이언트 요청에 문제가 있습니다.

401

승인되지 않음

인증이 필요하지만 요청 에 포함되지 않았습니다. 일반적으로 이는 인증 정보가 요청 에서 생략되었거나, 제공된 자격 증명 이 올바르지 않거나, 지정된 인증 메서드와 연결된 사용자가 요청된 리소스 에 액세스 수 없음을 의미합니다.

403

Forbidden

지정된 리소스에 대한 액세스가 허용되지 않습니다.

404

찾을 수 없습니다.

요청된 리소스가 존재하지 않습니다.

405

허용되지 않는 메서드

지정된 리소스 에 대해 HTTP 메서드가 지원되지 않습니다. 각 리소스 는 HTTP 메서드의 하위 집합만 지원 수 있다는 점에 유의하세요. 예를 예시 루트 리소스 를 DELETE 할 수 없습니다.

409

충돌

이는 해당 속성에 대해 동일한 값을 가진 기존 엔터티가 이미 존재할 때 고유한 엔터티의 속성을 만들거나 수정하라는 요청에 대한 응답입니다.

5xx

다양한 서버 오류

예상치 못한 문제가 발생했습니다. 나중에 다시 시도해 보시고 Atlas 지원팀에게 알려주세요.

요청이 오류를 반환하면 응답 본문에 JSON 문서가 표시됩니다. 이 문서에는 Atlas 관리 API 요청이 실패한 이유에 대한 자세한 내용이 포함되어 있으며, 다음과 같은 5개의 매개변수 또한 포함되어 있습니다.

Parameter
데이터 유형
설명

세부 정보

문자열

잘못된 Atlas 관리 API 요청에 대해 Atlas가 반환하는 설명. 사람이 읽을 수 있는 형식입니다.

오류

integer

상태 코드 HTTP 응답의 헤더에 반환됩니다.

오류 코드

문자열

잘못된 Atlas 관리 API 요청을 나타내는 명명된 상수. 이러한 상수에 대해 자세히 알아보려면 Atlas 관리 API 오류 코드를 참조하세요.

매개변수

배열

Atlas 관리 API 요청에 포함된 매개변수 목록입니다.

이유

문자열

상태 코드 정의 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 프로젝트를 고유하게 식별하는 문자열 값입니다.

Atlas 프로젝트는 이전에 '그룹'으로 식별되었습니다. 일부 Atlas 엔드포인트는 요청 경로, 쿼리 또는 본문 매개 변수의 일부로 group 또는 {GROUP-ID} 를 참조합니다. {GROUP-ID} 이(가) 필요한 엔드포인트의 경우 대신 프로젝트 ID를 지정하세요.

프로젝트 ID를 조회하려면 다음을 수행합니다.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Settings 를 클릭합니다.

    프로젝트 설정 페이지가 표시됩니다.

2

Atlas 관리 API 는API 키 또는 서비스 계정이라는 두 가지 방법 중 하나를 사용하여 요청을 인증합니다. 이렇게 하면 사용자 이름과 비밀번호 제공 을 하는 키와 액세스 토큰이 네트워크를 통해 전송되지 않습니다. 학습보려면 Atlas 관리 API 인증을 참조하세요.

사용법에 대한 자세한 내용은 API 요청하기를 참조하세요.

특정 리소스는 분당 처리할 수 있는 요청 수를 제한합니다.

이러한 리소스의 경우 Atlas 는 100 프로젝트 당 분당 최대 개의 요청을 허용합니다. Atlas 관리 API 인증 방법은 조직 에 속하지만 여러 프로젝트에 대한 액세스 을 부여할 수 있습니다.

예시

A와 B라는 두 사용자가 있다고 가정해 보겠습니다. 사용자 A는 프로젝트 X에 속해 있고 사용자 B는 프로젝트 X와 Y에 속해 있습니다.

  • 오후 1:00:00에 사용자 A가 프로젝트 X의 속도 제한 리소스에 대해 요청을 50건 하고, 이 요청은 오후 1:00:20에 모두 완료됩니다.

  • 오후 1:00:30에 사용자 B가 프로젝트 X의 속도 제한 리소스에 요청 60건을 시도합니다.

    사용자 A가 오후 1시 1분 내에 프로젝트 X에 대해 이미 요청 50건을 사용했기 때문에 사용자 B가 시도하는 마지막 요청 10건은 거부됩니다.

    그러나 사용자 B는 프로젝트 Y의 속도 제한 리소스에 요청을 할 수 있습니다. 각 프로젝트가 별도의 요청 카운터를 유지하기 때문입니다.

  • 오후 1:01:00에는 속도 제한에 사용되는 요청 카운터가 매분 재설정되므로 프로젝트 X에 대한 요청이 진행될 수 있습니다.

속도 제한을 초과하는 경우 Atlas 관리 API는 를 반환합니다.429 (너무 많은 요청) HTTP 상태 코드입니다.

시작하려면 Atlas 관리 API 시작하기를 참조하세요.

Atlas 관리 API에 대한 프로그래밍 방식의 액세스를 관리하려면 다음 절차 중 하나를 참조하세요.

돌아가기

프로젝트 액세스