- 인쇄
- PDF
My Products
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
My Products 메뉴에서는 여러 개의 API를 Product로 그룹화하여 관리하며 REST API 및 이와 관련된 리소스와 메서드를 정의하고 인증 방식을 설정할 수 있습니다. API를 게시하고, Product를 사용하고 있는 API Key로 사용자의 애플리케이션을 식별하거나 사용량을 제한할 수 있습니다.
My Products 화면
API Gateway 이용을 위한 My Products 메뉴의 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 메뉴명 | 현재 확인 중인 메뉴 이름, 운영 중인 Product 개수 |
② 기본 기능 | Product 생성, API Gateway 상세 정보 확인, My Products 화면 새로 고침 |
③ 생성 후 기능 | 운영 중인 Product 수정, 삭제 |
④ Product 목록 | 운영 중인 Product 목록 및 정보 확인 |
⑤ 검색창 및 필터 | 목록에서 원하는 Product 검색, 필터 기능을 이용하여 조건에 해당하는 Product 확인 |
Product 목록 확인
생성하여 운영 중인 Product 목록에서 Product별 정보를 확인할 수 있습니다.
Product 생성 방법에 대한 내용은 API Gateway 시작을 참고해 주십시오.
생성한 Product의 정보를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록이 표시되면 요약 정보를 확인하거나 대상 Product를 클릭하여 상세 정보를 확인해 주십시오.
- Product ID: Product의 고유 ID로 Product 생성 시 자동 설정됨
- Product 이름: Product 생성 시 설정한 Product 이름
- 설명: Product 생성 시 설정한 해당 Product에 대한 설명
- 구독 방식: Product 생성 시 설정한 API 구독 방식
- 상태: API 게시 여부 표시
- Catalog: 게시된 API에 대한 Overview 및 설명서(Swagger) 확인
- 게시: 클릭 시 API 게시 화면으로 이동
- API Keys: Product에 연결된 API Key의 상태별 현황. 클릭 시 API Key 확인, 추가, 상태 변경 및 Usage Plan 확인, 수정 화면으로 이동.
- APIs: Product에 생성된 API 목록 및 현황. 클릭 시 API 관리 화면으로 이동.
- API 이름: API 이름을 클릭하면 해당 API 관리 화면으로 이동
- 정의된 메서드: API별 정의된 메서드 수
- Stage Document: Stage 이름을 클릭하면 해당 API 설명서(Swagger) 화면으로 이동
Product 수정
Product를 수정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 수정할 Product의 체크 박스를 클릭해 선택한 후 [수정] 버튼을 클릭해 주십시오.
- Product 수정 화면에서 Product 정보를 변경한 후 [Product 수정] 버튼을 클릭해 주십시오.
- 이름: Product 이름 표시
- 설명: Product에 대한 설명 수정 및 입력
- 구독 방식: Product 구독 방식을 선택
- 공개 - 자율 구독: Product의 API를 누구나 사용 가능
- 보호 - 승인 필요: Product의 API를 사용하기 위해서는 게시자의 승인이 필요
- Product 수정 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
Product 삭제
Product를 삭제하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 삭제할 Product를 클릭해 선택한 후 [삭제] 버튼을 클릭해 주십시오.
- 삭제 팝업 창에서 내용을 확인하고, 이름에 삭제할 Product의 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.
API 등록
API를 생성 및 관리하며 관련 리소스와 메서드를 관리할 수 있습니다. 또한, API 사용자가 참조할 수 있는 정의된 API 명세와 Overview를 관리할 수 있으며, 스테이지를 활용하여 동일한 API를 여러 버전으로 운영할 수 있습니다. 백엔드 서비스의 안정화를 위한 스테이지별 캐시 사용, Throttling 정책, IP ACL 등을 설정할 수 있습니다.
API 생성
생성한 Product에 여러 개의 API를 생성할 수 있습니다.
API를 생성하는 방법은 다음과 같습니다.
네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
My Products 메뉴를 클릭해 주십시오.
Product 목록에서 API를 생성할 Product의 APIs 열의 을 클릭해 주십시오.
API 목록 화면에서 [API 생성] 버튼을 클릭해 주십시오.
API 생성 화면의 API 생성 항목에서 생성 방법을 선택해 주십시오.
API 생성 방법에 따라 설정 정보를 입력해 주십시오.
- API 생성 방법을 새로운 API로 선택한 경우, 다음의 항목을 설정
- API 이름: 생성할 API 이름을 입력. API의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
- 설명: 생성할 API의 설명을 입력
- API 생성 방법을 API 복사로 선택한 경우, 다음의 항목을 설정
- API 이름: 생성할 API 이름을 입력. API의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
- 설명: 생성할 API의 설명을 입력
- API 복사: 복사할 API가 있는 Product를 선택한 후 복사할 API를 선택
- API 생성 방법을 Swagger에서 가져오기로 선택한 경우, 다음의 항목을 설정
- API 이름: 생성할 API 이름을 입력. API의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
- 설명: 생성할 API의 설명을 입력
- Swagger에서 가져오기 영역
- [Swagger] 탭 : 외부에 저장된 Swagger 파일을 가져와 API를 생성
- Drop files here or click to upload.: 외부에 저장된 Swagger 파일을 드래그하거나 영역을 클릭해 탐색 창에서 Swagger 파일 선택
- 경고 실패: Swagger 파일을 가져올 때 오류 또는 경고가 발생하면 가져오기를 중단
- 경고 무시: Swagger 파일을 가져올 때 발생하는 오류 또는 경고에 관계없이 가져옴
- [미리보기] 탭: Swagger 설정 상태 미리보기
- [Swagger] 탭 : 외부에 저장된 Swagger 파일을 가져와 API를 생성
- API 생성 방법을 API 예제로 선택한 경우, 다음의 항목을 설정
- API 이름: 생성할 예제 API 이름을 입력. API의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
- 설명: 생성할 예제 API의 설명을 입력
- API 예제: 생성할 예제 API의 세부 정보 표시
- API 생성 방법을 새로운 API로 선택한 경우, 다음의 항목을 설정
[API 생성] 버튼을 클릭해 주십시오. API 생성 방법이 API 복사인 경우 [API 복사] 버튼을 클릭해 주십시오.
API 생성 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
API가 생성된 후의 API 목록 화면에 대한 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① API 이름 | 해당 Product에 생성되어 있는 API 목록. 클릭 시 사용 가능한 기능 및 상세 정보가 화면 오른쪽에 표시됨. |
② API 수정, 배포, 삭제 | API 설명 수정, Stage에 API 배포, API 삭제 |
③ Resources | / 생성 |
④ Stages | Stage 생성 및 관리 |
⑤ Gateway Responses | API Gateway에서 발생한 게이트웨이 응답 정의. 변경 사항을 적용하려면 API를 배포해야 함. |
⑥ Models | 요청과 응답의 바디 모델 정의. 수정 시 변경 사항을 적용하려면 API를 배포해야 함. |
⑦ Overview | API 설명서의 Overview 작성 |
API 수정
API에 대한 설명을 수정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- Product 목록에서 수정할 API가 있는 Product의 APIs 열의 을 클릭해 주십시오.
- API 목록에서 수정할 API를 클릭해 주십시오.
- [수정] 버튼을 클릭해 주십시오.
- API 수정 화면의 설명 항목에 설정 내용을 추가 또는 수정한 후 [저장] 버튼을 클릭해 주십시오.
API 삭제
API를 삭제하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- Product 목록에서 삭제할 API가 있는 Product의 APIs 열의 을 클릭해 주십시오.
- API 목록에서 삭제할 API를 클릭해 주십시오.
- [삭제] 버튼을 클릭해 주십시오.
- 삭제 팝업 창에서 삭제할 API 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.
리소스 관리
API 사용에 필요한 리소스를 생성하고 관리할 수 있습니다.
[Resources] 탭 메뉴에 대한 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 리소스 생성 | API에 새 리소스 생성 |
② 리소스 보기 | 리소스 CORS 활성 여부 설정 |
③ 리소스 삭제 | 불필요한 리소스 삭제 |
④ API 가져오기 | Swagger 파일을 불러와서 리소스 생성(API가져오기 참고) |
⑤ 루트 리소스 경로 | API 생성 시 기본으로 생성되는 루트 리소스(/ 로 표시) |
⑥ 리소스 이름(경로) | 리소스 생성 시 설정한 API URL 경로 |
⑦ 메서드 | 메서드 생성 기능으로 리소스에 추가한 메서드 |
⑧ OPTIONS 메서드 | CORS를 활성화한 후 자동으로 생성된 메서드(리소스 생성의 7번 절차 또는 리소스의 CORS 설정 참고) |
⑨ 메서드 생성 | 리소스에 메서드 생성 |
⑩ 메서드 목록 | 리소스에 추가된 메서드 목록(카드 타입)으로 해당 리소스의 설정 정보 확인 |
리소스 생성
리소스를 생성하는 방법은 다음과 같습니다.
네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
My Products 메뉴를 클릭해 주십시오.
Product 목록에서 리소스를 생성할 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
API 목록에서 리소스를 생성할 API를 클릭해 주십시오.
[Resources] 탭을 클릭해 주십시오.
[리소스 생성] 버튼을 클릭해 주십시오.
- 이미 생성된 리소스의 하위에 리소스를 추가하려면 해당 리소스를 선택한 후 [리소스 생성] 버튼을 클릭해 주십시오.
- 이미 생성된 리소스 중 경로가
{variable+}
와 같이+
가 포함되어 하위 리소스를 포함하는 리소스에는 하위 리소스를 생성할 수 없습니다.
리소스 목록 오른쪽에 표시된 리소스 생성 항목에 정보를 입력한 후 [생성] 버튼을 클릭해 주십시오.
- 리소스 경로: API URL 경로로 사용할 값을 입력
- 괄호를 사용하여 리소스를 경로 변수로 지정할 수 있습니다.
- <예시1>
{variable}
: 현재 경로를 변수로 사용 - <예시2>
{variable+}
: 하위 리소스를 포함한 경로를 변수로 사용
- <예시1>
- 경로 변수는 엔드포인트의 경로에 파라미터로 사용할 수 있습니다.
참고Endpoint 로 Cloud Functions의 Web Action을 사용한다면
{type}
변수는 예약어로 처리됩니다.
{type}
변수는 Cloud Functions에서 Web action의 Content extensions를 정의하기 위한 예약어입니다.
따라서 Cloud Functions의 Web Action을 Endpoint로 사용하는 API의 리소스에{type}
변수가 존재하는 경우, 해당 값을 Cloud Functions의 extension 변수{type}
에 사용하며, 해당 변수에 대한 정의가 없다면 빈값으로 처리합니다. - 괄호를 사용하여 리소스를 경로 변수로 지정할 수 있습니다.
- 활성화 CORS: CORS(Cross-Origin Resource Sharing) 활성 여부 선택. 활성화 선택 시 추가 항목 설정 필요.
- Access-Control-Allow-Method: 클라이언트 요청(리소스 접근) 시 허용할 메서드 설정
- Access-Control-Allow-Headers: 클라이언트 요청(리소스 접근) 시 허용할 헤더 설정
- Access-Control-Allow-Origin: 클라이언트 요청(리소스 접근) 모든 도메인 허용(
*
), 또는 선별적 허용 설정 - Access-Control-Expose-Headers: 클라이언트 요청(리소스 접근)에 포함 가능한 사용자 정의 헤더
- Access-Control-Max-Age: 클라이언트가 Preflight 요청 결과를 저장할 기간. 해당 시간 동안에는 Preflight 요청을 다시 하지 않음.
- Access-Control-Allow-Credentials: 클라이언트 요청(리소스 접근)의 자격 증명 모드(Request.credentials)가
include
일 때의 응답 노출 여부를 설정. 필요시true
(유일값)로 설정, 불필요 시 헤더 미입력.
- 리소스 경로: API URL 경로로 사용할 값을 입력
[Resources] 탭의 리소스 목록에 생성한 리소스가 표시되는지 확인해 주십시오.
- 활성화 CORS 항목을 활성화한 경우, API Gateway에서 CORS 요청을 처리하기 위해 OPTIONS 메서드가 생성되고 해당 리소스 목록에 표시됩니다. 단, OPTIONS 메서드는 수정할 수 없습니다.
리소스의 CORS 설정
리소스의 CORS 활성 여부 설정하고, 활성 시 추가 항목을 설정할 수 있습니다.
리소스 확인 및 CORS 설정을 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 확인 및 설정할 리소스가 있는 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 확인 및 설정할 리소스를 클릭해 선택한 후 [리소스 보기] 버튼을 클릭해 주십시오.
- CORS(기본 설정값: 비활성)를 설정하려면 활성화 CORS를 클릭해 활성화한 후 추가 헤더 항목을 설정해 주십시오.
- 추가 헤더 항목에 대한 자세한 내용은 리소스 생성의 7번 절차를 참고해 주십시오.
- [수정] 버튼을 클릭해 주십시오.
- CORS 활성화로 설정한 경우 OPTIONS 메서드가 생성되고 해당 리소스 목록에 표시됩니다.
리소스 삭제
리소스를 삭제하는 방법은 다음과 같습니다.
OPTIONS 메서드는 삭제할 수 없습니다. 리소스의 CORS를 비활성화하면 자동으로 삭제됩니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 삭제할 리소스가 있는 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 삭제할 리소스를 클릭해 선택한 후 [리소스 삭제] 버튼을 클릭해 주십시오.
- 삭제 팝업 창에서 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.
API 가져오기
API 구성 관련 문서인 Swagger 파일을 이용하여 API 리소스를 가져올 수 있습니다.
외부에서 API 리소스를 가져오는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 대상 리소스를 클릭해 선택한 후 [API 가져오기] 버튼을 클릭해 주십시오.
- API 가져오기를 실행하면 현재 저장된 리소스가 삭제되고, 가져온 API 정보가 새 리소스로 저장됩니다.
- 외부에 저장된 Swagger 파일을 Drop files here or click to upload. 영역에 드래그하거나 영역을 클릭해 탐색 창에서 Swagger 파일을 선택해 주십시오.
- API를 가져올 때 발생하는 오류 또는 경고에 대한 처리 방법을 선택해 주십시오.
- 경고 실패: Swagger 파일을 가져올 때 오류 또는 경고가 발생하면 가져오기를 중단
- 경고 무시: Swagger 파일을 가져올 때 발생하는 오류 또는 경고에 관계없이 가져옴
- JSON 형식의 API 정의 세부 내역을 확인 및 수정한 후 [API 가져오기] 버튼을 클릭해 주십시오.
- 설정한 내용을 미리 확인하려면 [미리보기] 탭을 클릭해 주십시오.
- API 가져오기 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
- 오류가 발생하면 오류 내역을 확인 및 수정한 후 다시 시도해 주십시오.
메서드 관리
API 리소스에 메서드를 생성 및 설정하고, 테스트할 수 있습니다.
메서드 생성
리소스에 메서드를 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 메서드를 생성할 리소스를 클릭해 주십시오.
- 리소스 목록 오른쪽에 표시된 [메서드 생성] 드롭다운 메뉴에서 생성할 메서드 종류를 선택해 주십시오.
- [Settings] 탭을 클릭해 설정 정보를 입력한 후 [저장] 버튼을 클릭해 주십시오.
설명: 메서드의 설명을 입력
엔드포인트: 서비스할 엔드포인트 설정. 엔드포인트 종류에 따라 메서드 설정 항목이 달라집니다.
MOCK: API Gateway에서 설정한 값을 반환
- Status Code: 요청에 대한 응답 코드를 설정
- Header: 요청에 대한 헤더를 입력
- Response: 요청에 대한 바디를 입력
HTTP(S): HTTP(S) 엔드포인트의 호출 결과를 반환
Stream: 파일 업로드 성격의 요청인 경우 활성화
- Stream을 껐을 경우 응답 시간은 30초, 최대 요청 크기는 10 MB로 제한
- Stream을 켰을 경우 응답 시간은 5분, 최대 요청 크기는 100 MB로 제한
메서드: 백엔드 서버로 요청할 메서드 선택
URL 경로: 백엔드 서버로 요청할 도메인을 제외한 URL 입력(엔드포인트로 호출할 URL 경로)
참고- 리소스 경로 변수 및 요청 파라메터에서 정의한 쿼리 스트링과 헤더를 파라미터로 사용할 수 있습니다.
- 파라미터는 괄호를 사용하여 정의합니다.
Naver Cloud Platform Service: 네이버 클라우드 플랫폼에서 제공되는 서비스(<예시> Cloud Functions) 이용
- 서비스: 서비스 선택
- 리전: 서비스 지원 리전 선택
- 액션: 해당 서비스에 설정된 액션 선택
API Key 필요: API Key 필요 여부 설정
참고- API Key 필요 설정을 하지 않은 경우, Product 구독 방식과 Usage Plan이 적용되지 않습니다.
- 구독 방식을 보호(승인 필요) 방식으로 제공하거나 요청 처리량 제한 및 요청 한도를 적용하려면, API Key 필요 설정을 활성화해주시기 바랍니다.
인증: 인증 방법 설정
- NONE: 인증 미사용
- IAM: 네이버 클라우드 플랫폼에서 제공하는 IAM 인증 사용
- IAM + AUTHORIZATION: 네이버 클라우드 플랫폼에서 제공하는 IAM을 통한 사용자 인증과 Method 단위 권한 인가 기능을 사용
- 미리 생성한 Authorizer를 사용(Authorizer 참고)
참고- IAM 인증은 네이버 클라우드의 IAM 서비스를 통해 API Gateway에 접근하는 사용자를 인증하는 방식입니다. 즉, API 호출 시 IAM 인증을 통해 해당 사용자가 API를 호출할 자격이 있는지 검증합니다.
- IAM + AUTHORIZATION 인증은 사용자 접근 인증에 API 수행 권한에 대한 인가 기능을 더한 방식입니다. 사용자가 인증된 후에도 특정 API 메서드를 수행할 수 있는 권한이 있는지 추가로 검증하는 단계가 포함됩니다. 즉, 사용자는 IAM을 통해 인증되지만, 각 API 메서드별로 사전에 IAM에 등록된 권한이 부여된 경우에만 해당 API 액션을 수행할 수 있습니다.
유효성 검사: 유효성 검사 범위 선택
- NONE: 유효성 검사 미실행
- Query Strings & Headers: 쿼리 스트링과 헤더에 대한 유효성 검사 실행. 유효성 검사는 Parameters 탭에서 정의한 API 명세를 참고함.
메서드 설정
생성한 메서드의 설정을 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 설정할 메서드를 포함하고 있는 상위 리소스를 클릭해 주십시오.
- 설정할 메서드를 클릭해 주십시오.
- 또는 상위 리소스의 메서드 목록에서 해당 메서드의 [보기] 버튼을 클릭해 주십시오.
- [Settings] 및 [Parameters] 탭을 클릭해 각 항목을 설정해 주십시오.
메서드 삭제
생성한 메서드를 삭제하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 삭제할 메서드를 포함하는 상위 리소스를 클릭해 주십시오.
- 메서드 목록에서 삭제할 메서드의 [삭제] 버튼을 클릭해 주십시오.
- 메서드 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.
API 명세 정의
API 명세(요청/응답 파라미터)를 정의할 수 있습니다. 정의한 API 명세는 Swagger UI를 생성하는 데 사용됩니다.
API 명세를 정의하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 대상 리소스의 메서드를 클릭해 선택한 후 오른쪽 화면에 표시된 상세 정보에서 [Parameters] 탭을 클릭해 주십시오.
- 요청 및 응답 파라미터를 설정해 주십시오.
요청 영역: 요청에 대한 명세를 정의
쿼리 스트링: 요청의 쿼리 스트링을 정의. 엔드포인트로 호출할 URL 경로를 정의할 때 리소스 경로 변수처럼 변수로 사용 가능.
- 이름: 쿼리 스트링 이름 입력
- 설명: 쿼리 스트링에 대한 설명 입력
- 변수 타입: 쿼리 스트링의 변수 타입(string, boolean, integer, long, float, double)을 선택
- Array: 활성화하면 중복된 이름으로 여러 개의 쿼리 스트링을 생성
- Required: 활성화하면 유효성 검사 대상에 포함
- 항목을 추가하려면 설정 항목을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 기존 추가된 항목을 삭제하려면 해당 항목의 [삭제] 버튼을 클릭한 후 쿼리 스트링 삭제 팝업 창의 [삭제] 버튼을 클릭해 주십시오.
헤더: 요청의 헤더를 정의. 엔드포인트로 호출할 URL 경로를 정의할 때 리소스 경로 변수처럼 변수로 사용 가능.
- 이름: 헤더 이름 입력
- 설명: 헤더에 대한 설명 입력
- 변수 타입: 헤더의 변수 타입(string, boolean, integer, long, float, double)을 선택
- Array: 활성화하면 중복된 이름으로 여러 개의 헤더를 생성
- Required: 활성화하면 유효성 검사 대상에 포함
- 항목을 추가하려면 설정 항목을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 기존 추가된 항목을 삭제하려면 해당 항목의 [삭제] 버튼을 클릭한 후 헤더 삭제 팝업 창의 [삭제] 버튼을 클릭해 주십시오.
폼 데이터: 요청의 폼 데이터를 정의
- 이름: 폼 데이터 이름 입력
- 설명: 폼 데이터에 대한 설명 입력
- 변수 타입: 폼 데이터의 변수 타입(string, boolean, integer, long, float, double, file)을 선택
- Array: 활성화하면 중복된 이름으로 여러 개의 쿼리 스트링을 생성
- Required: 활성화하면 유효성 검사 대상에 포함
- 항목을 추가하려면 설정 항목을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 기존 추가된 항목을 삭제하려면 해당 항목의 [삭제] 버튼을 클릭한 후 폼 데이터 삭제 팝업 창의 [삭제] 버튼을 클릭해 주십시오.
바디: 요청의 바디를 정의
- 이름: 바디 이름 입력
- 설명: 바디에 대한 설명 입력
- 모델: 바디 모델을 정의. 바디의 모델은 API 목록의 [Models] 탭에 정의된 모델을 사용(요청과 응답의 바디 모델 정의 참고).
- 요청의 바디를 정의하려면 설정 항목을 입력한 후 [저장] 버튼을 클릭해 주십시오.
- 저장된 항목을 삭제하려면 해당 항목의 [삭제] 버튼을 클릭한 후 바디 삭제 팝업 창의 [삭제] 버튼을 클릭해 주십시오.
컨텐츠 타입: 요청 바디의 콘텐츠 타입을 정의
- 콘텐츠 타입을 추가하려면 입력란에 요청의 콘텐츠 타입을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 기존 추가된 항목을 삭제하려면 해당 항목의 [삭제] 버튼을 클릭한 후 콘텐츠 타입 삭제 팝업 창의 [삭제] 버튼을 클릭해 주십시오.
참고application/x-www-form-urlencoded
,multipart/form-data
는 정의된 폼 데이터를 이용하여 요청의 바디를 생성하고, 그 외 콘텐츠 타입은 바디를 사용해 주십시오.
응답 영역: 응답에 대한 명세를 정의
- [추가]: 새 응답 코드 생성 및 정의
- [수정]: 정의된 응답 코드 수정
- [삭제]: 응답 코드 삭제
- 헤더(응답 코드 선택 시): 응답의 헤더를 정의
- 바디(응답 코드 선택 시): 응답의 바디를 정의
- 컨텐츠 타입: 응답 바디의 콘텐츠 타입을 정의
API 테스트
등록한 API를 배포하기 전에 리소스의 메서드가 제대로 동작하는지 테스트할 수 있습니다.
테스트에는 인증 및 사용 계획은 적용되지 않습니다.
API를 테스트하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Resources] 탭을 클릭해 주십시오.
- 리소스 목록에서 해당 리소스의 메서드를 클릭해 선택한 후 오른쪽 화면에 표시된 상세 정보에서 [Test] 탭을 클릭해 주십시오.
- 엔드 포인트 영역에서 URL 경로를 확인하고 Client Certificate를 선택해 주십시오.
- Client Certificate에 관한 자세한 내용은 Client Certificates를 참고해 주십시오.
- 요청 파라미터 영역에서 테스트 경로를 설정하고 요청 파라미터 설정 정보를 확인해 주십시오.
- [Test] 버튼을 클릭해 주십시오.
- [Test] 버튼 하단에 표시되는 테스트 결과 내용을 확인해 주십시오.
Stage 관리
Stage를 활용하여 API를 여러 버전으로 배포, 운영할 수 있습니다. 백엔드 서비스의 안정화를 위한 스테이지별 캐시 사용, Throttling 정책, IP ACL, Content-Encoding 등의 설정을 할 수 있습니다.
[Stages] 탭 메뉴에 대한 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① Stage 생성 | Stage 생성 |
② Stage 삭제 | Stage 삭제 |
③ Canary 활성화 | API 명세를 Stage에 배포하기 전에 Canary 환경을 만들어 운영 환경에서 테스트할 수 있는 기능 활성화 |
④ 생성된 Stage 목록 | 생성한 Stage 목록과 경로 정보 |
⑤ 설정 및 정보 | Stage 목록에서 Stage 이름, 루트 리소스(/), 리소스, 메서드를 선택할 때 표시되는 설정 항목 및 정보 영역 |
Stage 목록에서 Stage 이름, 루트 리소스(/), 리소스, 메서드를 선택할 때 표시되는 정보는 다음과 같습니다.
Stage 이름 선택 시
영역 설명 ① Invoke URL 배포한 API를 호출할 수 있는 URL - 구성 형식:
https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
- 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
② Settings Stage의 설정 확인 ③ Export Stage 내보내기 ④ Deployment History Stage에 배포된 API 버전 관리. Canary 환경에서는 미표시 ⑤ Usage Plans API 사용량을 제어. Canary 환경에서는 미표시 ⑥ Document Stage 정보를 Swagger 형식으로 확인 - 구성 형식:
루트 리소스(
/
) 선택 시
영역 설명 Invoke URL 배포한 API를 호출할 수 있는 URL - 구성 형식:
https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
- 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
- 구성 형식:
리소스 경로(이름) 선택 시
영역 설명 ① Invoke URL 배포한 API를 호출할 수 있는 URL - 구성 형식:
https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
- 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
② 메서드 목록 Stage에 배포된 API 리소스의 메서드 목록(카드 타입) - [보기]: 해당 Stage의 메서드 정보 보기
- 구성 형식:
메서드 선택 시
영역 설명 ① Invoke URL 배포한 API를 호출할 수 있는 URL - 구성 형식:
https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
- 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
② Target 엔드포인트 도메인의 서비스명 ③ Stage 설정에 따르기 Stage 설정에 따른 API 캐시, Throttling 값 실행 - 이 페이지에서는 설정 변경 불가
④ 메서드 설정하기 API 캐시, Throttling 값을 메서드에 직접 설정. 항목을 선택하면 아래 API 캐시, Throttling 항목 설정 가능 ⑤ API 캐시 API 캐시(Cache) TTL 설정 ⑥ Throttling 등록한 메서드별로 초당 요청 수를 제한하여 백엔드 서버를 보호 - 구성 형식:
Stage 생성
생성 및 설정한 API를 배포하려면 먼저 Stage를 생성해야 합니다.
Stage를 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 Stage를 생성할 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- [Stage 생성] 버튼을 클릭해 주십시오.
- Stage 생성 정보를 입력한 후 [생성] 버튼을 클릭해 주십시오.
- Stage 이름: Stage의 이름을 입력. Stage의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
- Endpoint 도메인: 백엔드 서버의 도메인을 입력. API의 리소스 경로(Resource Path)와 결합하여 백엔드 서버로 호출할 API 경로가 됨.
- Certificate 이름: Client Certificates 인증서 선택(인증서의 유효 기간은 인증서 생성일로부터 1년)
- API 캐시: 캐시(Cache)를 설정. 설정 선택 시 TTL 항목이 표시됨.
- TTL: 캐시를 유지할 초(sec)를 입력
- Throttling: 등록한 메서드별로 초당 요청 수를 제한하여 백엔드 서버를 보호
- IP ACL: IP에 따라 API 요청을 제어
- 유지 보수: 모든 API가 정의된 상태 코드와 응답을 리턴하도록 설정
- Content Encoding: 요청, 응답에 전송되는 데이터의 압축 및 인코딩 설정
- Stage 생성 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
- Stage가 생성되면 정의된 API가 새 Stage에 배포됩니다.
Stage 설정
Stage 설정을 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 설정할 Stage가 있는 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 설정할 Stage 이름을 클릭해 주십시오.
- Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Settings] 탭을 클릭해 주십시오.
- 설정 항목을 변경한 후 [저장] 버튼을 클릭해 주십시오.
- Stage 설정 항목에 대한 설명은 Stage 생성을 참고해 주십시오.
- API 캐시의 TTL 값이 설정되어 있는 경우 이를 초기화하려면 [초기화] 버튼을 클릭한 후 캐시 초기화 팝업 창에서 [삭제] 버튼을 클릭해 주십시오. 이후 초기화 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
- 수정 팝업 창에서 [수정] 버튼을 클릭해 주십시오.
- 수정 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
Stage 삭제
Stage를 삭제하는 방법은 다음과 같습니다.
삭제한 Stage는 복구할 수 없습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 삭제할 Stage가 있는 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 삭제할 Stage 이름을 클릭해 주십시오.
- [Stage 삭제] 버튼을 클릭해 주십시오.
- 삭제 팝업 창에 삭제할 Stage 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.
Stage 내보내기
Stage에 배포된 API를 Swagger JSON 2.0, Open API JSON 3.0, Java SDK 형식으로 다운로드할 수 있습니다.
배포된 API Swagger 파일을 내려받는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 내보낼 Stage 이름을 클릭해 주십시오.
- Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Export] 탭을 클릭해 주십시오.
- 플랫폼 항목에서 내보낼 파일 형식을 선택한 후 [내보내기] 버튼을 클릭해 주십시오.
- JAVA SDK를 선택한 경우에는 필요에 따라 추가 항목을 설정해 주십시오.
배포 이력 확인 및 관리
Stage의 API 배포 이력을 확인하고, 내역을 다운받거나 이전 버전으로 배포하거나 이력을 삭제할 수 있습니다.
배포 이력을 확인하고 관리하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 API 배포 이력을 확인할 Stage 이름을 클릭해 주십시오.
- Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Deployment History] 탭을 클릭해 주십시오.
- 배포 이력을 확인하거나 이전 배포본을 다운로드, 배포, 삭제해 주십시오.
- 배포일시: API를 해당 Stage에 배포한 일시(UTC 기준)
- 설명: API 배포 시 입력한 설명
- 배포된 Stage: 현재 Stage에 배포된 항목에 표시
- 내보내기: 이전 배포본을 Swagger JSON 2.0 형식으로 다운로드
- 배포: 이전 배포본으로 배포
- 삭제: 배포 이력 삭제
Usage Plans 변경
Stage의 API 기본 요청 처리량과 요청 처리 한도를 설정할 수 있으며, Usage Plans 메뉴에서 생성한 Usage Plan을 연결하고 관리할 수 있습니다.
Stage에서 Usage Plans을 설정 변경하는 방법은 다음과 같습니다.
- 사용량은 일/월의 시작을 기준으로 카운트됩니다.
- 엔드포인트의 응답 코드에 따라 사용량이 카운트됩니다.
- API Key 필요 설정을 활성화해야만 Usage Plan이 적용됩니다. API Key 필요 설정 방법은 메서드 생성 을 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 Usage Plan을 변경할 Stage 이름을 클릭해 주십시오.
- Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Usage Plans] 탭을 클릭해 주십시오.
- Usage Plan을 확인하고 필요시 수정해 주십시오.
- Default Usage Plan: 요청 처리량과 요청 처리 한도를 관리합니다.
- 요청 처리량(Rate): 초당 요청 수를 설정
- 요청 처리 한도(Quota): 일별, 월별 API 사용량을 설정
- [Usage Plan 연결]/[연결 해제]: Usage Plans 메뉴에서 생성한 Usage Plan 연결 또는 해제
- 목록: 해당 Stage에 연결된 Usage Plan 항목
- 검색: 검색할 Usage Plan 이름을 입력한 후 을 클릭해 검색
- 정렬: 목록 페이지당 표시할 Usage Plan 개수 설정
- Usage Plans에 관한 자세한 내용은 Usage Plans을 참고해 주십시오.
- Default Usage Plan: 요청 처리량과 요청 처리 한도를 관리합니다.
Document 확인
Stage에 현재 배포된 API 문서를 확인할 수 있습니다.
API 문서를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 API 문서를 확인할 Stage 이름을 클릭해 주십시오.
- Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Document] 탭을 클릭해 주십시오.
- API 문서 내용을 확인해 주십시오.
- 배포된 API 내용을 Swagger UI 형태로 확인하려면 [미리보기] 버튼을 클릭해 주십시오.
Canary 활성화 및 테스트
수정된 API 명세를 Stage에 배포하기 전에 Canary 환경을 만들고 운영 환경에서 테스트할 수 있습니다.
Canary를 활성화하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 Canary를 활성화할 Stage 이름을 클릭해 선택한 후 [Canary 활성화] 버튼을 클릭해 주십시오.
- Stage 목록에
Stage 이름+(Canary)
로 Canary가 활성화됩니다.
- Stage 목록에
- Stage 목록에서 해당 Canary(
Stage 이름+(Canary)
)를 클릭해 주십시오. - 오른쪽 화면에 표시된 상세 정보에서 [Settings], [Export], [Document] 탭을 클릭해 정보를 확인 및 설정해 주십시오.
- [Settings]: Canary 설정
- [Export]: Canary에 배포된 API를 Swagger JSON 2.0, Open API JSON 3.0, Java SDK 형식으로 다운로드
- [Document]: Canary에 배포된 API 문서 확인. 배포된 API 내용을 Swagger UI 형태로 확인하려면 [미리보기] 버튼을 클릭.
Canary 설정
활성화한 Canary를 설정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 설정할 Canary(
Stage 이름+(Canary)
)를 클릭해 주십시오. - 오른쪽 화면에 표시된 상세 정보에서 [Settings] 탭을 클릭해 주십시오.
- 설정 화면에서 설정을 변경한 후 [저장] 버튼을 클릭해 주십시오.
- Endpoint 도메인: Canary의 Endpoint 도메인을 설정
- Certificate 이름: Client Certificates 인증서 선택(인증서의 유효 기간은 인증서 생성일로부터 1년)
- 분배: 요청을 Stage와 Canary에 분배할 방법 설정
- Percentage: Canary 요청의 실행 비율 지정
- Condition: 설정한 헤더(Header) 및 쿼리 스트링(Query String)과 요청이 동일하면 Canary 요청을 실행
- API 캐시: Stage의 API 캐시를 이용하여 Canary API 캐시를 활성화. Stage의 API 캐시가 비활성화인 경우 사용 불가
- TTL: 캐시를 유지할 초(sec)를 입력
- Throttling: 등록한 메서드별로 초당 요청 수를 제한하여 백엔드 서버를 보호
Canary 승격
테스트를 완료한 Canary를 Stage에 배포할 수 있습니다.
Canary를 Stage에 배포하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 배포할 Canary(
Stage 이름+(Canary)
)를 클릭해 선택한 후 [Canary 승격] 버튼을 클릭해 주십시오. - Canary 승격 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
- Canary 승격을 완료하면 Canary 비활성화 상태로 변환되고 Stage 목록에서 삭제됩니다.
- 배포 이력을 확인하려면 Stage 이름을 클릭한 후 오른쪽에 표시된 [Deployment History] 탭을 클릭해 주십시오. 자세한 내용은 배포 이력 확인 및 관리를 참고해 주십시오.
Canary 비활성화
활성화한 Canary를 비활성화(삭제)할 수 있습니다.
Canary를 비활성화하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Stages] 탭을 클릭해 주십시오.
- Stage 목록에서 비활성화할 Canary(
Stage 이름+(Canary)
)를 클릭해 선택한 후 [Canary 비활성화] 버튼을 클릭해 주십시오. - Canary 비활성화 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
- Canary 비활성화를 완료하면 Canary가 Stage 목록에서 삭제됩니다.
게이트웨이 응답 정의
미리 정의된 API Gateway 응답 설정을 변경할 수 있습니다.
응답 확인 및 수정
API Gateway 응답을 확인하고, 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 대상 API를 클릭해 주십시오.
- [Gateway Responses] 탭을 클릭해 주십시오.
- 응답 목록에서 응답 유형을 클릭해 상세 정보를 확인하거나 변경해 주십시오.
- 상세정보 영역
- 상태 코드: 현재 정의된 응답 코드
- 기본 설정: 응답 유형이 기본 설정인지의 여부
- 응답 유형에 대한 응답 코드를 수정하려면 상태 코드 항목의 [수정] 버튼을 클릭해 코드(100~599)를 수정한 후 [저장] 버튼을 클릭해 주십시오. 수정을 취소하려면 [취소] 버튼을 클릭해 주십시오.
- 변경 사항이 설정되면 기본 설정 항목이 예에서 아니오로 변경됩니다.
- 응답 헤더 영역
- 응답 헤더를 추가하려면 헤더 이름과 헤더 값(변수 또는 static)을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 응답 헤더의 이름은 어떤 유효한 문자열도 될 수 있습니다.
- 응답 헤더 값은 유효한 요구 파라미터나 작은따옴표로 묶은 static 값이 될 수 있습니다.
- 추가한 응답 헤더를 삭제하려면 해당 응답 헤더의 [삭제] 버튼을 클릭한 후 응답 헤더 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.
- 응답 헤더와 응답 메시지에 사용할 수 있는 콘텐츠 변수는 콘텐츠 변수를 참고해 주십시오.
- 매핑 템플릿 영역
- 데이터 반환을 위한 본문 매핑 템플릿을 지정할 수 있습니다. 템플릿은 Apache Velocity Template Language(VTL)를 이용 시 선언됩니다.
- 매핑 템플릿을 추가하려면 [추가] 버튼을 클릭한 후 매핑 템플릿 추가 팝업 창에서 콘텐츠 유형과 매핑 템플릿 정보를 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 매핑 템플릿을 수정하려면 목록에서 수정할 매핑 템플릿을 클릭해 선택한 후 [수정] 버튼을 클릭해 주십시오. 이후 매핑 템플릿 수정 팝업 창에서 매핑 템플릿 정보를 수정한 후 [수정] 버튼을 클릭해 주십시오.
- 매핑 템플릿을 삭제하려면 목록에서 삭제할 매핑 템플릿을 클릭해 선택한 후 [삭제] 버튼을 클릭해 주십시오. 이후 매핑 템플릿 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.
- 변경 사항을 기본값으로 재설정하려면 목록에서 재설정할 응답 유형을 클릭해 선택한 후 [재설정] 버튼을 클릭해 주십시오. 이후 재설정 팝업 창에서 내용을 확인한 후 [재설정] 버튼을 클릭해 주십시오. 변경 사항이 설정되면 기본 설정 항목이 아니오에서 예로 변경됩니다.
- 상세정보 영역
콘텐츠 변수
응답 헤더와 응답 메시지에는 다음의 콘텐츠 변수를 사용할 수 있습니다.
콘텐츠 변수 | 설명 |
---|---|
${context.productName} | Product 이름 |
${context.apiName} | API 이름 |
${context.httpMethod} | 메서드 |
${context.error.message} | 에러 메시지 문자열 |
${context.error.messageString} | 에러 메시지 문자열, "$context.error.message" |
${context.error.responseType} | 응답 유형 |
${context.identity.accountId} | AccessKey의 계정ID(IAM 인증을 사용한 경우) |
${context.identity.apiKey} | API Key(API Key를 사용하는 경우) |
${context.identity.sourceIp} | 호출자 IP |
${context.identity.user} | ${context.identity.accountId}와 동일 |
${context.identity.userAgent} | User Agent |
${context.path} | URL 경로 |
${context.protocol} | 호출 프로토콜(<예시> HTTP/1.1) |
${context.requestId} | 요청 ID |
${context.requestTime} | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(millisecond)로 나타낸 숫자 |
${context.resourcePath} | 리소스 경로 |
${context.methodCode} | 엔드포인트의 메서드 |
${context.methodName} | 엔드포인트의 메서드 |
${context.status} | 응답 코드 |
${context.stage} | Stage 이름 |
${method.request.path.PARAM_NAME} | 요청의 경로 변수 |
${method.request.queryString.PARAM_NAME} | 요청의 쿼리 스트링 |
${method.request.header.PARAM_NAME} | 요청의 헤더 |
요청과 응답의 바디 모델 정의
API 명세에서 사용하기 위한 바디 모델을 정의할 수 있습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 바디 모델을 정의할 API를 클릭해 주십시오.
- [Models] 탭을 클릭해 주십시오.
- 필요에 따라 모델의 새로 정의하거나 수정 및 삭제해 주십시오.
- 모델을 추가하려면 [추가] 버튼을 클릭한 후 Model 추가 팝업 창에서 정보를 입력한 다음 [추가] 버튼을 클릭해 주십시오.
- Model 이름: 생성할 Model 이름 입력
- 설명: Model에 대한 설명 입력
- Schema: 모델을 선언할 때는 JSON schema 사용
- [Schema] 탭: 스키마 작성
- [미리보기] 탭: 작성한 스키마 동작을 미리 확인
- 작성 예제
{ "title": "Person", "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "age": { "description": "Age in years", "type": "integer", "minimum": 0 } }, "required": ["firstName", "lastName"] }
- 모델을 추가하려면 [추가] 버튼을 클릭한 후 Model 추가 팝업 창에서 정보를 입력한 다음 [추가] 버튼을 클릭해 주십시오.
- 모델을 수정하려면 목록에서 수정할 모델을 클릭해 선택한 후 [수정] 버튼을 클릭해 주십시오. 이후 Model 수정 팝업 창에서 모델 정보를 수정한 다음 [수정] 버튼을 클릭해 주십시오.
- 모델을 삭제하려면 목록에서 삭제할 모델을 클릭해 선택한 후 [삭제] 버튼을 클릭해 주십시오. 이후 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.
API 설명서의 Overview 작성
API 설명서의 Overview를 Markdown 문법으로 작성할 수 있습니다.
API 설명서의 Overview를 작성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 설명서를 작성할 API를 클릭해 주십시오.
- [Overview] 탭을 클릭해 주십시오.
- [수정] 버튼을 클릭해 주십시오.
- [입력] 탭을 클릭해 주십시오.
- 입력란에 Markdown 문법으로 Overview를 작성한 후 [저장] 버튼을 클릭해 주십시오.
- 작성한 내용을 미리 확인해 보려면 [미리보기] 탭을 클릭해 주십시오.
- 작성한 Overview는 Catalog에서 확인할 수 있으며, Catalog 화면에서도 수정할 수 있습니다.
API 배포
등록한 API를 배포하는 방법은 다음과 같습니다.
API를 배포하려면 먼저 Stage를 생성해야 합니다.
Stage를 생성하는 방법은 Stage 생성을 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 배포할 API가 있는 Product의 APIs 열의 을 클릭해 주십시오.
- 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
- API 목록에서 배포할 API를 클릭해 주십시오.
- [API 배포] 버튼을 클릭해 주십시오.
- API 배포 팝업 창에서 API 배포 정보를 설정한 후 [추가] 버튼을 클릭해 주십시오.
- 배포할 Stage: 배포할 Stage를 선택
- 설명: 배포에 대한 설명을 입력
- API 배포 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
- API는 하나의 Stage에 여러 번 배포할 수 있으며, 배포 이력(Deployment History)을 통해 관리할 수 있습니다.
API 호출
배포한 API를 호출할 수 있습니다. API 설정에 따라 호출할 때 인증이 필요합니다.
인증이 필요 없는 API 호출
인증이 필요 없는 API를 호출하는 경우 다음 예를 참고해 주십시오.
curl -i -X GET https://uh7m0wgsis.apigw.gov-ntruss.com/petStore/v1/pets
API Key가 필요한 API 호출
API Key가 필요한 API를 호출하는 경우 다음 내용과 예를 참고해 주십시오.
헤더 | 설명 |
---|---|
x-ncp-apigw-api-key | API Gateway에서 발급받은 키(Primary Key 또는 Secondary Key) API Key를 요구하는 경우에만 추가 |
curl -i -X GET \
-H "x-ncp-apigw-api-key:cstWXuw4wqp1EfuqDwZeMz5fh0epaTykRRRuy5Ra" \
'https://uh7m0wgsis.apigw.gov-ntruss.com/petStore/v1/pets'
IAM 인증이 필요한 API 호출
IAM 인증이 필요한 API를 호출하는 경우 다음 내용과 예를 참고해 주십시오.
:::(Info) (참고)
API 인증 방법이 IAM 또는 IAM + AUTHORIZATION 인 경우, 아래와 같이 API 호출 시 IAM 인증이 필요합니다. API 인증 방법 설정은 메서드 생성을 참조해 주십시오.
:::
헤더 | 설명 |
---|---|
x-ncp-apigw-api-key | API Gateway에서 발급받은 키(Primary Key 또는 Secondary Key) API Key를 요구하는 경우에만 추가 |
x-ncp-apigw-timestamp | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(millisecond)로 나타낸 것 API Gateway 서버와 시간차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주 |
x-ncp-iam-access-key | 포털 또는 Sub Account에서 발급받은 Access Key ID |
x-ncp-apigw-signature-v2 | Access Key ID와 맵핑되는 SecretKey로 암호화한 서명 HMAC 암호화 알고리즘은 HmacSHA256 사용 |
curl -i -X GET \
-H "x-ncp-apigw-timestamp:1505290625682" \
-H "x-ncp-apigw-api-key:cstWXuw4wqp1EfuqDwZeMz5fh0epaTykRRRuy5Ra" \
-H "x-ncp-iam-access-key:D78BB444D6D3C84CA38A" \
-H "x-ncp-apigw-signature-v2:WTPItrmMIfLUk/UyUIyoQbA/z5hq9o3G8eQMolUzTEo=" \
'https://uh7m0wgsis.apigw.gov-ntruss.com/photos/puppy.jpg?query1=&query2'
Access Key ID, SecretKey 확인
Access Key ID, SecretKey는 포털의 마이페이지 > 계정 관리 > 인증키 관리에서 확인할 수 있습니다.
Signature 생성
요청 StringToSign GET /photos/puppy.jpg?query1=&query2
x-ncp-apigw-timestamp={timestamp}
x-ncp-apigw-api-key={apiKey}
x-ncp-iam-access-key={accesskey}
x-ncp-apigw-signature-v2={signature}GET /photos/puppy.jpg?query1=&query2
{timeStamp}
{accessKey}주의요청 헤더의 x-ncp-apigw-timestamp 값과 StringToSign의 timestamp는 반드시 같아야 합니다.
참고- 서명에 사용되는 URL에는 도메인이 포함되지 않습니다.
- 개행문자는 \n을 사용합니다.
요청에 맞게 StringToSign를 생성하고 SecretKey를 HmacSHA256 알고리즘으로 암호화한 후 Base64로 인코딩합니다. 이 값을 x-ncp-apigw-signature-v2
로 사용합니다.
코드 종류별 샘플 코드는 다음과 같습니다.
Java 샘플 코드
public String makeSignature() { String space = " "; // one space String newLine = "\n"; // new line String method = "GET"; // method String url = "/photos/puppy.jpg?query1=&query2"; // url (include query string) String timestamp = "{timestamp}"; // current timestamp (epoch) String accessKey = "{accessKey}"; // access key id (from portal or sub account) String secretKey = "{secretKey}"; String message = new StringBuilder() .append(method) .append(space) .append(url) .append(newLine) .append(timestamp) .append(newLine) .append(accessKey) .toString(); SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8")); String encodeBase64String = Base64.getEncoder(rawHmac); return encodeBase64String; }
Javascript 샘플 코드
/* https://code.google.com/archive/p/crypto-js/ https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/CryptoJS%20v3.1.2.zip */ /* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wiki/License */ <script type="text/javascript" src="./CryptoJS/rollups/hmac-sha256.js"></script> <script type="text/javascript" src="./CryptoJS/components/enc-base64.js"></script> function makeSignature() { var space = " "; // one space var newLine = "\n"; // new line var method = "GET"; // method var url = "/photos/puppy.jpg?query1=&query2"; // url (include query string) var timestamp = "{timestamp}"; // current timestamp (epoch) var accessKey = "{accessKey}"; // access key id (from portal or sub account) var secretKey = "{secretKey}"; // secret key (from portal or sub account) var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey); hmac.update(method); hmac.update(space); hmac.update(url); hmac.update(newLine); hmac.update(timestamp); hmac.update(newLine); hmac.update(accessKey); var hash = hmac.finalize(); return hash.toString(CryptoJS.enc.Base64); }
Python3 샘플 코드
import hashlib import hmac import base64 import time def make_signature(): timestamp = int(time.time() * 1000) timestamp = str(timestamp) access_key = "{accessKey}" # access key id (from portal or sub account) secret_key = "{secretKey}" # secret key (from portal or sub account) secret_key = bytes(secret_key, 'UTF-8') method = "GET" uri = "/photos/puppy.jpg?query1=&query2" message = method + " " + uri + "\n" + timestamp + "\n" + access_key message = bytes(message, 'UTF-8') signingKey = base64.b64encode(hmac.new(secret_key, message, digestmod=hashlib.sha256).digest()) return signingKey
Bash 샘플 코드
function makeSignature() { nl=$'\\n' TIMESTAMP=$(echo $(($(date +%s%N)/1000000))) ACCESSKEY="{accessKey}" # access key id (from portal or sub account) SECRETKEY="{secretKey}" # secret key (from portal or sub account) METHOD="GET" URI="/photos/puppy.jpg?query1=&query2" SIG="$METHOD"' '"$URI"${nl} SIG+="$TIMESTAMP"${nl} SIG+="$ACCESSKEY" SIGNATURE=$(echo -n -e "$SIG"|iconv -t utf8 |openssl dgst -sha256 -hmac $SECRETKEY -binary|openssl enc -base64) }
Objective-C 샘플 코드
#include <CommonCrypto/CommonDigest.h> #include <CommonCrypto/CommonHMAC.h> - (NSString*) makeSignature { NSString* space = @" "; NSString* newLine = @"\n"; NSString* method = @"GET"; NSString* url = @"/photos/puppy.jpg?query1=&query2"; NSString* timestamp = @"{timestamp}"; NSString* accessKey = @"{accessKey}"; NSString* secretKey = @"{secretKey}"; NSString* message = [[NSString alloc] init]; message = [message stringByAppendingString:method]; message = [message stringByAppendingString:space]; message = [message stringByAppendingString:url]; message = [message stringByAppendingString:newLine]; message = [message stringByAppendingString:timestamp]; message = [message stringByAppendingString:newLine]; message = [message stringByAppendingString:accessKey]; const char *cKey = [secretKey cStringUsingEncoding:NSASCIIStringEncoding]; const char *cData = [message StringUsingEncoding:NSASCIIStringEncoding]; unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH]; CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC); NSData *hash = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)]; const uint8_t* input = (const uint8_t*)[hash bytes]; NSInteger length = [theData length]; static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4]; uint8_t* output = (uint8_t*)data.mutableBytes; NSInteger i; for (i=0; i < length; i += 3) { NSInteger value = 0; NSInteger j; for (j = i; j < (i + 3); j++) { value <<= 8; if (j < length) { value |= (0xFF & input[j]); } } NSInteger theIndex = (i / 3) * 4; output[theIndex + 0] = table[(value >> 18) & 0x3F]; output[theIndex + 1] = table[(value >> 12) & 0x3F]; output[theIndex + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '='; output[theIndex + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '='; } return [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; }
C# 샘플 코드
using System; using System.Text; using System.Security.Cryptography; class ApiGateway { static String MakeSignature() { String method = "GET"; String space = " "; String url = "/photos/puppy.jpg?query1=&query2"; String newLine = "\n"; String timestamp = "{timestamp}"; String accessKey = "{accessKey}"; String secretKey = "{secretKey}"; var message = new StringBuilder(); message.Append(method); message.Append(space); message.Append(url); message.Append(newLine); message.Append(timestamp); message.Append(newLine); message.Append(accessKey); string result = message.ToString(); String signature = string.Empty; byte[] byteSecretKey = Encoding.UTF8.GetBytes(secretKey); using (HMACSHA256 hmacSha256 = new HMACSHA256(byteSecretKey)) { Byte[] dataToHmac = System.Text.Encoding.UTF8.GetBytes(result); signature = Convert.ToBase64String(hmacSha256.ComputeHash(dataToHmac)); } return signature; } }
PHP 샘플 코드
<?php function makeSignature() { $StringToSign = 'GET /photos/puppy.jpg?query1=&query2' . PHP_EOL . '{timestamp}' . PHP_EOL . '{accessKey}'; $secret_key = '{secretKey}'; $signature = base64_encode(hash_hmac('sha256', $StringToSign, $secret_key, true)); return $signature; } ?>
에러 코드
API 호출 시 나타날 수 있는 에러 코드의 종류와 설명은 다음과 같습니다.
HttpStatusCode | ErrorCode | ErrorMessage | 설명 |
---|---|---|---|
400 | 100 | Bad Request Exception | protocol(https), endocing(UTF-8) 등 request 에러 |
401 | 200 | Authentication Failed | 인증 실패 |
401 | 210 | Permission Denied | 권한 없음 |
403 | 230 | Forbidden | 권한 없음 |
404 | 300 | Not Found Exception | Not found |
429 | 400 | Quota Exceeded | Quota 초과 |
429 | 410 | Throttle Limited | Rate 초과 |
429 | 420 | Rate Limited | Rate 초과 |
413 | 430 | Request Entity Too Large | 요청 엔티티 크기 초과 |
415 | 440 | Unsupported Media Type | 지원되지 않는 미디어 유형 |
503 | 500 | Endpoint Error | 엔드포인트 연결 에러 |
504 | 510 | Endpoint Timeout | 엔드포인트 연결 시간 초과 |
503 | 520 | Unknown Endpoint Domain | 알 수 없거나 설정 되지 않은 엔드포인트 |
503 | 530 | Connection Closed By Endpoint | 엔드포인트 연결 닫힘 |
500 | 900 | Unexpected Error | 예외 처리가 안된 에러 |
- 관련 FAQ : API 호출시 에러가 발생하는 경우 에러 내용을 알 수 있나요?
에러 응답 형식
API 호출 시 나타날 수 있는 에러 응답 형식은 다음과 같습니다.
요청 Content-Type이 application/xml일 때
<?xml version='1.0' encoding='UTF-8' ?> <Message> <error> <errorCode>210</errorCode> <message>Permission Denied</message> </error> </Message>
그 외
{ "error":{ "errorCode":"210", "message":"Permission Denied" } }
문서 관리
API 문서는 다음 3가지 종류가 있습니다. 각 문서에 대한 내용은 해당 사용 가이드를 참고해 주십시오.
- API의 Overview: API 설명서의 개요
- Stage의 Document: API 설명서
- Product의 Catalog: 게시된 API 문서의 개요(Overview)와 설명서(Document)의 묶음
Catalog 확인
게시된 API 문서의 개요(Overview)와 설명서(Document)를 확인할 수 있습니다. 개요의 경우 내용을 수정할 수 있습니다.
- Catalog를 확인하려면 먼저 API를 Stage에 배포한 후 해당 Stage를 게시해야 합니다. API를 게시하는 방법은 API 게시를 참고해 주십시오.
- 다른 사용자가 게시하여 공개한 Catalog를 참고 및 구독할 수 있습니다. 자세한 내용은 Published APIs 사용 가이드를 참고해 주십시오.
Catalog를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 Catalog를 확인할 Product의 Catalog 열의 을 클릭해 주십시오.
- 해당 Product의 API 목록에서 Catalog를 확인할 API의 이름을 클릭해 정보를 확인해 주십시오.
API 게시
개발한 API를 다른 사용자가 API 설명서를 참고하여 사용할 수 있도록 게시할 수 있습니다.
API를 게시하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 게시 열의 을 클릭해 주십시오.
- 해당 Product의 Catalog 목록에서 게시할 API의 이름을 클릭하고 [게시] 버튼을 클릭해 주십시오.
- 게시 성공 팝업 창이 나타나면 [확인] 버튼을 클릭해 주십시오.
Stage에 API Key 연결 및 관리
API Keys 메뉴에서 생성한 API Key를 Stage에 등록하고, 사용 상태 및 API 사용량을 설정할 수 있습니다.
API Key 연결
Stage에 API Key를 연결하는 방법은 다음과 같습니다.
Stage에 API Key를 연결하려면 먼저 API Key를 생성해야 합니다. 자세한 내용은 API Keys 사용 가이드를 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 API Keys 열의 을 클릭해 주십시오.
- [내 API Key 추가] 버튼을 클릭해 주십시오.
- 내 API Key 추가 팝업 창에서 연결할 API Key를 클릭해 선택한 후 [추가] 버튼을 클릭해 주십시오.
- API Key 이름을 입력한 후 을 클릭해 원하는 API Key를 빠르게 찾을 수 있습니다.
- API Key 목록 화면에서 Stage에 연결된 API Key가 추가되었는지 확인해 주십시오.
API Key가 연결된 후의 API Key 목록에 대한 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 내 API Key 추가 | Stage에 API Key를 연결 |
② 상태 변경 | API에 대한 API Key의 사용 상태를 변경 |
③ Usage Plans | API Key에 대한 Usage Plan 변경 |
④ 검색창 | 검색 조건을 선택하고 검색어를 입력한 후 을 클릭해 항목 검색 |
⑤ 필터 | API Key의 사용 상태에 따라 목록을 정렬 |
⑥ 정렬 | 목록 페이지당 표시할 API Key 개수 설정 |
⑦ API Key 목록 | 해당 Stage에 연결된 API Key 항목
|
API Key의 상태 변경
API에 대한 API Key의 사용 상태를 변경할 수 있습니다.
API Key의 사용 상태를 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 API Keys 열의 을 클릭해 주십시오.
- API Key 목록 화면에서 상태를 변경할 API Key를 클릭해 선택한 후 [상태 변경] 버튼을 클릭해 주십시오.
- 상태 팝업 창에서 상태를 선택해 변경한 후 [저장] 버튼을 클릭해 주십시오.
- 요청: API Key 승인을 요청한 상태
- 승인: API를 호출할 수 있는 상태
- 거부: 승인된 API Key가 API를 호출할 수 없도록 거부한 상태
- 요청 거부: API Key 승인 요청을 거부한 상태
- 요청 차단: API Key 승인 요청을 차단한 상태
API Key의 Usage Plan 변경
API Key의 Usage Plan을 변경하는 방법은 다음과 같습니다.
- 사용량은 일/월의 시작을 기준으로 카운트됩니다.
- 엔드포인트의 응답 코드에 따라 사용량이 카운트됩니다.
- API Key 필요 설정을 활성화해야만 Usage Plan이 적용됩니다. API Key 필요 설정 방법은 메서드 생성 을 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
- My Products 메뉴를 클릭해 주십시오.
- Product 목록에서 대상 Product의 API Keys 열의 을 클릭해 주십시오.
- API Key 목록 화면에서 Usage Plan을 변경할 API Key를 클릭해 선택한 후 [Usage Plans] 버튼을 클릭해 주십시오.
- Usage Plans 목록 화면에서 대상 API를 선택한 후 [Usage Plan 수정] 버튼을 클릭해 주십시오.
- API: API Key가 연결된 API 이름
- Stage: API Key가 연결된 Stage 이름
- Usage Plan: Stage에 설정되어 있는 Usage Plan 이름
- 요청 일시: API Key와 Stage 연결을 요청한 일시
- 수정 일시: Usage Plan을 설정 변경한 일시
- 일별 호출수/요청 처리 한도: 일별 호출 수와 Usage Plan에 설정된 일별 요청 처리 한도 값 표시
- 월별 호출수/요청 처리 한도: 월별 호출 수와 Usage Plan에 설정된 월별 요청 처리 한도 값 표시
- Usage Plan 수정 팝업 창에서 Usage Plan을 선택해 변경한 후 [저장] 버튼을 클릭해 주십시오.
- 기본 Usage Plan: Stage의 [Usage Plans] 탭의 Default Usage Plan 항목에서 설정한 API 사용량(Stage의 Usage Plan 변경 참고)
- Stage에 연결된 Usage plan: Usage plans 메뉴에서 생성하고 해당 Stage의 [Usage Plans] 탭에서 연결한 Usage plan 표시. Usage Plan 옆의 숫자는 연결된 Stage의 수.
사용한도
설명 | 제한 |
---|---|
Product 생성 개수 | 60 |
Product당 가능한 API 생성 개수 | 20 |
API key 생성 개수 | 500 |
API당 Resource 생성 개수 | 300 |
API당 Stage 생성 개수 | 10 |
Usage plan 생성 개수 | 300 |
TTL 설정 | 1 ~ 3600초 |
TTL 설정 (Stream API) | 캐시안됨 |
API 처리 시간 | 600초 |
Endpoint API 처리 시간 | 30초 |
Endpoint API 처리 시간 (Stream API) | 300초 |
요청 바디 | 10 MB |
요청 바디 (Stream API) | 100MB |