My Products
    • PDF

    My Products

    • PDF

    기사 요약

    Classic/VPC 환경에서 이용 가능합니다.

    My Products 메뉴에서는 여러 개의 API를 Product로 그룹화하여 관리하며 REST API 및 이와 관련된 리소스와 메서드를 정의하고 인증 방식을 설정할 수 있습니다. API를 게시하고, Product를 사용하고 있는 API Key로 사용자의 애플리케이션을 식별하거나 사용량을 제한할 수 있습니다.

    My Products 화면

    API Gateway 이용을 위한 My Products 메뉴의 기본적인 설명은 다음과 같습니다.
    apigw-myproducts-screen_ko

    영역설명
    ① 메뉴명현재 확인 중인 메뉴 이름, 운영 중인 Product 개수
    ② 기본 기능Product 생성, API Gateway 상세 정보 확인, My Products 화면 새로 고침
    ③ 생성 후 기능운영 중인 Product 수정, 삭제
    ④ Product 목록운영 중인 Product 목록 및 정보 확인
    ⑤ 검색창 및 필터목록에서 원하는 Product 검색, 필터 기능을 이용하여 조건에 해당하는 Product 확인

    Product 목록 확인

    생성하여 운영 중인 Product 목록에서 Product별 정보를 확인할 수 있습니다.

    참고

    Product 생성 방법에 대한 내용은 API Gateway 시작을 참고해 주십시오.

    생성한 Product의 정보를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록이 표시되면 요약 정보를 확인하거나 대상 Product를 클릭하여 상세 정보를 확인해 주십시오.
      apigw-myproducts-list_ko
      • Product ID: Product의 고유 ID로 Product 생성 시 자동 설정됨
      • Product 이름: Product 생성 시 설정한 Product 이름
      • 설명: Product 생성 시 설정한 해당 Product에 대한 설명
      • 구독 방식: Product 생성 시 설정한 API 구독 방식
      • 상태: API 게시 여부 표시
      • Catalog: 게시된 API에 대한 Overview 및 설명서(Swagger) 확인
      • 게시: i-apigateway-publish 클릭 시 API 게시 화면으로 이동
      • API Keys: Product에 연결된 API Key의 상태별 현황. i-apigateway-apikeys 클릭 시 API Key 확인, 추가, 상태 변경 및 Usage Plan 확인, 수정 화면으로 이동.
      • APIs: Product에 생성된 API 목록 및 현황. i-apigateway-apis 클릭 시 API 관리 화면으로 이동.
        • API 이름: API 이름을 클릭하면 해당 API 관리 화면으로 이동
        • 정의된 메서드: API별 정의된 메서드 수
        • Stage Document: Stage 이름을 클릭하면 해당 API 설명서(Swagger) 화면으로 이동

    Product 수정

    Product를 수정하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 수정할 Product의 체크 박스를 클릭해 선택한 후 [수정] 버튼을 클릭해 주십시오.
    4. Product 수정 화면에서 Product 정보를 변경한 후 [Product 수정] 버튼을 클릭해 주십시오.
      • 이름: Product 이름 표시
      • 설명: Product에 대한 설명 수정 및 입력
      • 구독 방식: Product 구독 방식을 선택
        • 공개 - 자율 구독: Product의 API를 누구나 사용 가능
        • 보호 - 승인 필요: Product의 API를 사용하기 위해서는 게시자의 승인이 필요
    5. Product 수정 팝업 창에서 [확인] 버튼을 클릭해 주십시오.

    Product 삭제

    Product를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 삭제할 Product를 클릭해 선택한 후 [삭제] 버튼을 클릭해 주십시오.
    4. 삭제 팝업 창에서 내용을 확인하고, 이름에 삭제할 Product의 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.

    API 등록

    API를 생성 및 관리하며 관련 리소스와 메서드를 관리할 수 있습니다. 또한, API 사용자가 참조할 수 있는 정의된 API 명세와 Overview를 관리할 수 있으며, 스테이지를 활용하여 동일한 API를 여러 버전으로 운영할 수 있습니다. 백엔드 서비스의 안정화를 위한 스테이지별 캐시 사용, Throttling 정책, IP ACL 등을 설정할 수 있습니다.

    API 생성

    생성한 Product에 여러 개의 API를 생성할 수 있습니다.

    API를 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.

    2. My Products 메뉴를 클릭해 주십시오.

    3. Product 목록에서 API를 생성할 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.

    4. API 목록 화면에서 [API 생성] 버튼을 클릭해 주십시오.

    5. API 생성 화면의 API 생성 항목에서 생성 방법을 선택해 주십시오.

    6. 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 설정 상태 미리보기
      • API 생성 방법을 API 예제로 선택한 경우, 다음의 항목을 설정
        • API 이름: 생성할 예제 API 이름을 입력. API의 이름은 API Gateway의 호출 URL의 경로에 포함됨.
        • 설명: 생성할 예제 API의 설명을 입력
        • API 예제: 생성할 예제 API의 세부 정보 표시
    7. [API 생성] 버튼을 클릭해 주십시오. API 생성 방법이 API 복사인 경우 [API 복사] 버튼을 클릭해 주십시오.

    8. API 생성 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.

    API가 생성된 후의 API 목록 화면에 대한 설명은 다음과 같습니다.
    apigw-myproducts-apilist_ko1-2

    영역설명
    ① API 이름해당 Product에 생성되어 있는 API 목록. 클릭 시 사용 가능한 기능 및 상세 정보가 화면 오른쪽에 표시됨.
    ② API 수정, 배포, 삭제API 설명 수정, Stage에 API 배포, API 삭제
    Resources
  • 리소스 생성 및 관리
  • 메서드 생성 및 관리
  • API 테스트
  • API가 생성되면 기본으로 루트 리소스(Root Resource)인 / 생성
  • StagesStage 생성 및 관리
    Gateway ResponsesAPI Gateway에서 발생한 게이트웨이 응답 정의. 변경 사항을 적용하려면 API를 배포해야 함.
    Models요청과 응답의 바디 모델 정의. 수정 시 변경 사항을 적용하려면 API를 배포해야 함.
    OverviewAPI 설명서의 Overview 작성

    API 수정

    API에 대한 설명을 수정하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. Product 목록에서 수정할 API가 있는 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
    3. API 목록에서 수정할 API를 클릭해 주십시오.
    4. [수정] 버튼을 클릭해 주십시오.
    5. API 수정 화면의 설명 항목에 설정 내용을 추가 또는 수정한 후 [저장] 버튼을 클릭해 주십시오.

    API 삭제

    API를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. Product 목록에서 삭제할 API가 있는 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
    3. API 목록에서 삭제할 API를 클릭해 주십시오.
    4. [삭제] 버튼을 클릭해 주십시오.
    5. 삭제 팝업 창에서 삭제할 API 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.

    리소스 관리

    API 사용에 필요한 리소스를 생성하고 관리할 수 있습니다.

    [Resources] 탭 메뉴에 대한 설명은 다음과 같습니다.
    apigw-myproducts-resource_ko

    영역설명
    리소스 생성API에 새 리소스 생성
    리소스 보기리소스 CORS 활성 여부 설정
    리소스 삭제불필요한 리소스 삭제
    API 가져오기Swagger 파일을 불러와서 리소스 생성(API가져오기 참고)
    ⑤ 루트 리소스 경로API 생성 시 기본으로 생성되는 루트 리소스(/로 표시)
    ⑥ 리소스 이름(경로)리소스 생성 시 설정한 API URL 경로
    ⑦ 메서드메서드 생성 기능으로 리소스에 추가한 메서드
    ⑧ OPTIONS 메서드CORS를 활성화한 후 자동으로 생성된 메서드(리소스 생성의 7번 절차 또는 리소스의 CORS 설정 참고)
    메서드 생성리소스에 메서드 생성
  • 지원 메서드: ANY, GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD
  • ⑩ 메서드 목록리소스에 추가된 메서드 목록(카드 타입)으로 해당 리소스의 설정 정보 확인
  • [보기]: 해당 메서드 설정 페이지로 이동
  • [삭제]: 메서드 삭제
  • OPTIONS 메서드는 [보기]/[삭제] 버튼 비활성화
  • 리소스 생성

    리소스를 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.

    2. My Products 메뉴를 클릭해 주십시오.

    3. Product 목록에서 리소스를 생성할 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.

      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 리소스를 생성할 API를 클릭해 주십시오.

    5. [Resources] 탭을 클릭해 주십시오.

    6. [리소스 생성] 버튼을 클릭해 주십시오.

      • 이미 생성된 리소스의 하위에 리소스를 추가하려면 해당 리소스를 선택한 후 [리소스 생성] 버튼을 클릭해 주십시오.
      • 이미 생성된 리소스 중 경로가 {variable+}와 같이 +가 포함되어 하위 리소스를 포함하는 리소스에는 하위 리소스를 생성할 수 없습니다.
    7. 리소스 목록 오른쪽에 표시된 리소스 생성 항목에 정보를 입력한 후 [생성] 버튼을 클릭해 주십시오.

      • 리소스 경로: API URL 경로로 사용할 값을 입력
        • 괄호를 사용하여 리소스를 경로 변수로 지정할 수 있습니다.
          • <예시1> {variable}: 현재 경로를 변수로 사용
          • <예시2> {variable+}: 하위 리소스를 포함한 경로를 변수로 사용
        • 경로 변수는 엔드포인트의 경로에 파라미터로 사용할 수 있습니다.
        참고

        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(유일값)로 설정, 불필요 시 헤더 미입력.
    8. [Resources] 탭의 리소스 목록에 생성한 리소스가 표시되는지 확인해 주십시오.

      • 활성화 CORS 항목을 활성화한 경우, API Gateway에서 CORS 요청을 처리하기 위해 OPTIONS 메서드가 생성되고 해당 리소스 목록에 표시됩니다. 단, OPTIONS 메서드는 수정할 수 없습니다.

    리소스의 CORS 설정

    리소스의 CORS 활성 여부 설정하고, 활성 시 추가 항목을 설정할 수 있습니다.

    리소스 확인 및 CORS 설정을 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 확인 및 설정할 리소스가 있는 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 확인 및 설정할 리소스를 클릭해 선택한 후 [리소스 보기] 버튼을 클릭해 주십시오.
    7. CORS(기본 설정값: 비활성)를 설정하려면 활성화 CORS를 클릭해 활성화한 후 추가 헤더 항목을 설정해 주십시오.
      • 추가 헤더 항목에 대한 자세한 내용은 리소스 생성의 7번 절차를 참고해 주십시오.
    8. [수정] 버튼을 클릭해 주십시오.
      • CORS 활성화로 설정한 경우 OPTIONS 메서드가 생성되고 해당 리소스 목록에 표시됩니다.

    리소스 삭제

    리소스를 삭제하는 방법은 다음과 같습니다.

    참고

    OPTIONS 메서드는 삭제할 수 없습니다. 리소스의 CORS를 비활성화하면 자동으로 삭제됩니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 삭제할 리소스가 있는 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 삭제할 리소스를 클릭해 선택한 후 [리소스 삭제] 버튼을 클릭해 주십시오.
    7. 삭제 팝업 창에서 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.

    API 가져오기

    API 구성 관련 문서인 Swagger 파일을 이용하여 API 리소스를 가져올 수 있습니다.

    외부에서 API 리소스를 가져오는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 대상 리소스를 클릭해 선택한 후 [API 가져오기] 버튼을 클릭해 주십시오.
      • API 가져오기를 실행하면 현재 저장된 리소스가 삭제되고, 가져온 API 정보가 새 리소스로 저장됩니다.
    7. 외부에 저장된 Swagger 파일을 Drop files here or click to upload. 영역에 드래그하거나 영역을 클릭해 탐색 창에서 Swagger 파일을 선택해 주십시오.
    8. API를 가져올 때 발생하는 오류 또는 경고에 대한 처리 방법을 선택해 주십시오.
      • 경고 실패: Swagger 파일을 가져올 때 오류 또는 경고가 발생하면 가져오기를 중단
      • 경고 무시: Swagger 파일을 가져올 때 발생하는 오류 또는 경고에 관계없이 가져옴
    9. JSON 형식의 API 정의 세부 내역을 확인 및 수정한 후 [API 가져오기] 버튼을 클릭해 주십시오.
      • 설정한 내용을 미리 확인하려면 [미리보기] 탭을 클릭해 주십시오.
    10. API 가져오기 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
      • 오류가 발생하면 오류 내역을 확인 및 수정한 후 다시 시도해 주십시오.

    메서드 관리

    API 리소스에 메서드를 생성 및 설정하고, 테스트할 수 있습니다.

    메서드 생성

    리소스에 메서드를 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 메서드를 생성할 리소스를 클릭해 주십시오.
    7. 리소스 목록 오른쪽에 표시된 [메서드 생성] 드롭다운 메뉴에서 생성할 메서드 종류를 선택해 주십시오.
    8. [Settings] 탭을 클릭해 설정 정보를 입력한 후 [저장] 버튼을 클릭해 주십시오.
      • 설명: 메서드의 설명을 입력

      • 엔드포인트: 서비스할 엔드포인트 설정. 엔드포인트 종류에 따라 메서드 설정 항목이 달라집니다.

        • MOCK: API Gateway에서 설정한 값을 반환

          • Status Code: 요청에 대한 응답 코드를 설정
          • Header: 요청에 대한 헤더를 입력
          • Response: 요청에 대한 바디를 입력
        • HTTP(S): HTTP(S) 엔드포인트의 호출 결과를 반환

          • Stream: 파일 업로드 성격의 요청인 경우 활성화

            • Stream을 껐을 경우 응답 시간은 30초, 최대 요청 크기는 10 MB로 제한
            • Stream을 켰을 경우 응답 시간은 5분, 최대 요청 크기는 100 MB로 제한
          • 메서드: 백엔드 서버로 요청할 메서드 선택

          • URL 경로: 백엔드 서버로 요청할 도메인을 제외한 URL 입력(엔드포인트로 호출할 URL 경로)

            참고
            • 리소스 경로 변수 및 요청 파라메터에서 정의한 쿼리 스트링과 헤더를 파라미터로 사용할 수 있습니다.
            • 파라미터는 괄호를 사용하여 정의합니다.

            api-gateway-myproducts-endpointurl-v2

        • 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 명세를 참고함.

    메서드 설정

    생성한 메서드의 설정을 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 설정할 메서드를 포함하고 있는 상위 리소스를 클릭해 주십시오.
    7. 설정할 메서드를 클릭해 주십시오.
      • 또는 상위 리소스의 메서드 목록에서 해당 메서드의 [보기] 버튼을 클릭해 주십시오.
    8. [Settings][Parameters] 탭을 클릭해 각 항목을 설정해 주십시오.
      • [Settings] 탭의 설정 정보는 메서드 생성을 참고해 주십시오.
      • [Parameters] 탭의 설정 정보는 API 명세 정의를 참고해 주십시오.
      • 설정을 변경한 후 메서드를 테스트하는 방법은 API 테스트를 참고해 주십시오.

    메서드 삭제

    생성한 메서드를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 삭제할 메서드를 포함하는 상위 리소스를 클릭해 주십시오.
    7. 메서드 목록에서 삭제할 메서드의 [삭제] 버튼을 클릭해 주십시오.
    8. 메서드 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.

    API 명세 정의

    API 명세(요청/응답 파라미터)를 정의할 수 있습니다. 정의한 API 명세는 Swagger UI를 생성하는 데 사용됩니다.

    API 명세를 정의하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 대상 리소스의 메서드를 클릭해 선택한 후 오른쪽 화면에 표시된 상세 정보에서 [Parameters] 탭을 클릭해 주십시오.
    7. 요청 및 응답 파라미터를 설정해 주십시오.
      • 요청 영역: 요청에 대한 명세를 정의

        • 쿼리 스트링: 요청의 쿼리 스트링을 정의. 엔드포인트로 호출할 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를 테스트하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Resources] 탭을 클릭해 주십시오.
    6. 리소스 목록에서 해당 리소스의 메서드를 클릭해 선택한 후 오른쪽 화면에 표시된 상세 정보에서 [Test] 탭을 클릭해 주십시오.
    7. 엔드 포인트 영역에서 URL 경로를 확인하고 Client Certificate를 선택해 주십시오.
      • Client Certificate에 관한 자세한 내용은 Client Certificates를 참고해 주십시오.
    8. 요청 파라미터 영역에서 테스트 경로를 설정하고 요청 파라미터 설정 정보를 확인해 주십시오.
    9. [Test] 버튼을 클릭해 주십시오.
    10. [Test] 버튼 하단에 표시되는 테스트 결과 내용을 확인해 주십시오.

    Stage 관리

    Stage를 활용하여 API를 여러 버전으로 배포, 운영할 수 있습니다. 백엔드 서비스의 안정화를 위한 스테이지별 캐시 사용, Throttling 정책, IP ACL, Content-Encoding 등의 설정을 할 수 있습니다.

    [Stages] 탭 메뉴에 대한 설명은 다음과 같습니다.
    api-gateway-gov-stage-tab-v2_ko.png

    영역설명
    Stage 생성Stage 생성
    Stage 삭제Stage 삭제
    Canary 활성화API 명세를 Stage에 배포하기 전에 Canary 환경을 만들어 운영 환경에서 테스트할 수 있는 기능 활성화
  • Canary 활성화를 하면 [Canary 활성화] 버튼 대신 [Canary 승격] 버튼과 [Canary 비활성화] 버튼이 표시됨
  • ④ 생성된 Stage 목록생성한 Stage 목록과 경로 정보
    ⑤ 설정 및 정보Stage 목록에서 Stage 이름, 루트 리소스(/), 리소스, 메서드를 선택할 때 표시되는 설정 항목 및 정보 영역

    Stage 목록에서 Stage 이름, 루트 리소스(/), 리소스, 메서드를 선택할 때 표시되는 정보는 다음과 같습니다.

    • Stage 이름 선택 시
      api-gateway-gov-stage-tab-api-v2_ko

      영역설명
      Invoke URL배포한 API를 호출할 수 있는 URL
      • 구성 형식: https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
      • 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
      SettingsStage의 설정 확인
      ExportStage 내보내기
      Deployment HistoryStage에 배포된 API 버전 관리. Canary 환경에서는 미표시
      Usage PlansAPI 사용량을 제어. Canary 환경에서는 미표시
      DocumentStage 정보를 Swagger 형식으로 확인
    • 루트 리소스(/) 선택 시
      api-gateway-myproducts-stage3-v2_ko

      영역설명
      Invoke URL배포한 API를 호출할 수 있는 URL
      • 구성 형식: https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
      • 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
    • 리소스 경로(이름) 선택 시
      api-gateway-myproducts-stage4-v2_ko

      영역설명
      Invoke URL배포한 API를 호출할 수 있는 URL
      • 구성 형식: https://{product-id}.apigw.gov-ntruss.com/{api-name}/{stage-name}
      • 주소를 클립보드에 저장하려면 [주소 복사] 버튼 클릭
      ② 메서드 목록Stage에 배포된 API 리소스의 메서드 목록(카드 타입)
      • [보기]: 해당 Stage의 메서드 정보 보기
    • 메서드 선택 시
      api-gateway-myproducts-stage5-v2_ko

      영역설명
      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를 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 Stage를 생성할 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. [Stage 생성] 버튼을 클릭해 주십시오.
    7. 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: 요청, 응답에 전송되는 데이터의 압축 및 인코딩 설정
    8. Stage 생성 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
      • Stage가 생성되면 정의된 API가 새 Stage에 배포됩니다.

    Stage 설정

    Stage 설정을 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 설정할 Stage가 있는 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 설정할 Stage 이름을 클릭해 주십시오.
    7. Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Settings] 탭을 클릭해 주십시오.
    8. 설정 항목을 변경한 후 [저장] 버튼을 클릭해 주십시오.
      • Stage 설정 항목에 대한 설명은 Stage 생성을 참고해 주십시오.
      • API 캐시의 TTL 값이 설정되어 있는 경우 이를 초기화하려면 [초기화] 버튼을 클릭한 후 캐시 초기화 팝업 창에서 [삭제] 버튼을 클릭해 주십시오. 이후 초기화 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.
    9. 수정 팝업 창에서 [수정] 버튼을 클릭해 주십시오.
    10. 수정 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.

    Stage 삭제

    Stage를 삭제하는 방법은 다음과 같습니다.

    참고

    삭제한 Stage는 복구할 수 없습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 삭제할 Stage가 있는 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 삭제할 Stage 이름을 클릭해 주십시오.
    7. [Stage 삭제] 버튼을 클릭해 주십시오.
    8. 삭제 팝업 창에 삭제할 Stage 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.

    Stage 내보내기

    Stage에 배포된 API를 Swagger JSON 2.0, Open API JSON 3.0, Java SDK 형식으로 다운로드할 수 있습니다.

    배포된 API Swagger 파일을 내려받는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 내보낼 Stage 이름을 클릭해 주십시오.
    7. Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Export] 탭을 클릭해 주십시오.
    8. 플랫폼 항목에서 내보낼 파일 형식을 선택한 후 [내보내기] 버튼을 클릭해 주십시오.
      • JAVA SDK를 선택한 경우에는 필요에 따라 추가 항목을 설정해 주십시오.

    배포 이력 확인 및 관리

    Stage의 API 배포 이력을 확인하고, 내역을 다운받거나 이전 버전으로 배포하거나 이력을 삭제할 수 있습니다.

    배포 이력을 확인하고 관리하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 API 배포 이력을 확인할 Stage 이름을 클릭해 주십시오.
    7. Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Deployment History] 탭을 클릭해 주십시오.
    8. 배포 이력을 확인하거나 이전 배포본을 다운로드, 배포, 삭제해 주십시오.
      • 배포일시: API를 해당 Stage에 배포한 일시(UTC 기준)
      • 설명: API 배포 시 입력한 설명
      • 배포된 Stage: 현재 Stage에 배포된 항목에 i-apigateway-check 표시
      • 내보내기: 이전 배포본을 Swagger JSON 2.0 형식으로 다운로드
      • 배포: 이전 배포본으로 배포
      • 삭제: 배포 이력 삭제

    Usage Plans 변경

    Stage의 API 기본 요청 처리량과 요청 처리 한도를 설정할 수 있으며, Usage Plans 메뉴에서 생성한 Usage Plan을 연결하고 관리할 수 있습니다.

    Stage에서 Usage Plans을 설정 변경하는 방법은 다음과 같습니다.

    참고
    • 사용량은 일/월의 시작을 기준으로 카운트됩니다.
    • 엔드포인트의 응답 코드에 따라 사용량이 카운트됩니다.
    • API Key 필요 설정을 활성화해야만 Usage Plan이 적용됩니다. API Key 필요 설정 방법은 메서드 생성 을 참고해 주십시오.
    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 Usage Plan을 변경할 Stage 이름을 클릭해 주십시오.
    7. Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Usage Plans] 탭을 클릭해 주십시오.
    8. Usage Plan을 확인하고 필요시 수정해 주십시오.
      • Default Usage Plan: 요청 처리량과 요청 처리 한도를 관리합니다.
        • 요청 처리량(Rate): 초당 요청 수를 설정
        • 요청 처리 한도(Quota): 일별, 월별 API 사용량을 설정
      • [Usage Plan 연결]/[연결 해제]: Usage Plans 메뉴에서 생성한 Usage Plan 연결 또는 해제
      • 목록: 해당 Stage에 연결된 Usage Plan 항목
      • 검색: 검색할 Usage Plan 이름을 입력한 후 i-apigateway-find을 클릭해 검색
      • 정렬: 목록 페이지당 표시할 Usage Plan 개수 설정
      • Usage Plans에 관한 자세한 내용은 Usage Plans을 참고해 주십시오.

    Document 확인

    Stage에 현재 배포된 API 문서를 확인할 수 있습니다.

    API 문서를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 API 문서를 확인할 Stage 이름을 클릭해 주십시오.
    7. Stage 목록 오른쪽에 표시된 상세 정보 화면에서 [Document] 탭을 클릭해 주십시오.
    8. API 문서 내용을 확인해 주십시오.
      • 배포된 API 내용을 Swagger UI 형태로 확인하려면 [미리보기] 버튼을 클릭해 주십시오.

    Canary 활성화 및 테스트

    수정된 API 명세를 Stage에 배포하기 전에 Canary 환경을 만들고 운영 환경에서 테스트할 수 있습니다.

    Canary를 활성화하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 Canary를 활성화할 Stage 이름을 클릭해 선택한 후 [Canary 활성화] 버튼을 클릭해 주십시오.
      • Stage 목록에 Stage 이름+(Canary)로 Canary가 활성화됩니다.
    7. Stage 목록에서 해당 Canary(Stage 이름+(Canary))를 클릭해 주십시오.
    8. 오른쪽 화면에 표시된 상세 정보에서 [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를 설정하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 설정할 Canary(Stage 이름+(Canary))를 클릭해 주십시오.
    7. 오른쪽 화면에 표시된 상세 정보에서 [Settings] 탭을 클릭해 주십시오.
    8. 설정 화면에서 설정을 변경한 후 [저장] 버튼을 클릭해 주십시오.
    • 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에 배포하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 배포할 Canary(Stage 이름+(Canary))를 클릭해 선택한 후 [Canary 승격] 버튼을 클릭해 주십시오.
    7. Canary 승격 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
      • Canary 승격을 완료하면 Canary 비활성화 상태로 변환되고 Stage 목록에서 삭제됩니다.
      • 배포 이력을 확인하려면 Stage 이름을 클릭한 후 오른쪽에 표시된 [Deployment History] 탭을 클릭해 주십시오. 자세한 내용은 배포 이력 확인 및 관리를 참고해 주십시오.

    Canary 비활성화

    활성화한 Canary를 비활성화(삭제)할 수 있습니다.

    Canary를 비활성화하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Stages] 탭을 클릭해 주십시오.
    6. Stage 목록에서 비활성화할 Canary(Stage 이름+(Canary))를 클릭해 선택한 후 [Canary 비활성화] 버튼을 클릭해 주십시오.
    7. Canary 비활성화 팝업 창에서 내용을 확인한 후 [예] 버튼을 클릭해 주십시오.
      • Canary 비활성화를 완료하면 Canary가 Stage 목록에서 삭제됩니다.

    게이트웨이 응답 정의

    미리 정의된 API Gateway 응답 설정을 변경할 수 있습니다.

    응답 확인 및 수정

    API Gateway 응답을 확인하고, 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 대상 API를 클릭해 주십시오.
    5. [Gateway Responses] 탭을 클릭해 주십시오.
    6. 응답 목록에서 응답 유형을 클릭해 상세 정보를 확인하거나 변경해 주십시오.
      • 상세정보 영역
        • 상태 코드: 현재 정의된 응답 코드
        • 기본 설정: 응답 유형이 기본 설정인지의 여부
        • 응답 유형에 대한 응답 코드를 수정하려면 상태 코드 항목의 [수정] 버튼을 클릭해 코드(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 명세에서 사용하기 위한 바디 모델을 정의할 수 있습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 바디 모델을 정의할 API를 클릭해 주십시오.
    5. [Models] 탭을 클릭해 주십시오.
    6. 필요에 따라 모델의 새로 정의하거나 수정 및 삭제해 주십시오.
      • 모델을 추가하려면 [추가] 버튼을 클릭한 후 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 수정 팝업 창에서 모델 정보를 수정한 다음 [수정] 버튼을 클릭해 주십시오.
    • 모델을 삭제하려면 목록에서 삭제할 모델을 클릭해 선택한 후 [삭제] 버튼을 클릭해 주십시오. 이후 삭제 팝업 창에서 [삭제] 버튼을 클릭해 주십시오.

    API 설명서의 Overview 작성

    API 설명서의 Overview를 Markdown 문법으로 작성할 수 있습니다.

    API 설명서의 Overview를 작성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 설명서를 작성할 API를 클릭해 주십시오.
    5. [Overview] 탭을 클릭해 주십시오.
    6. [수정] 버튼을 클릭해 주십시오.
    7. [입력] 탭을 클릭해 주십시오.
    8. 입력란에 Markdown 문법으로 Overview를 작성한 후 [저장] 버튼을 클릭해 주십시오.
      • 작성한 내용을 미리 확인해 보려면 [미리보기] 탭을 클릭해 주십시오.
      • 작성한 Overview는 Catalog에서 확인할 수 있으며, Catalog 화면에서도 수정할 수 있습니다.

    API 배포

    등록한 API를 배포하는 방법은 다음과 같습니다.

    참고

    API를 배포하려면 먼저 Stage를 생성해야 합니다.
    Stage를 생성하는 방법은 Stage 생성을 참고해 주십시오.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 배포할 API가 있는 Product의 APIs 열의 i-apigateway-apis을 클릭해 주십시오.
      • 상세 정보의 APIs 목록에 있는 API 이름을 클릭하면 해당 API가 선택된 API 목록 화면으로 이동합니다.
    4. API 목록에서 배포할 API를 클릭해 주십시오.
    5. [API 배포] 버튼을 클릭해 주십시오.
    6. API 배포 팝업 창에서 API 배포 정보를 설정한 후 [추가] 버튼을 클릭해 주십시오.
      • 배포할 Stage: 배포할 Stage를 선택
      • 설명: 배포에 대한 설명을 입력
    7. API 배포 성공 팝업 창에서 [확인] 버튼을 클릭해 주십시오.

    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-keyAPI 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를 호출하는 경우 다음 내용과 예를 참고해 주십시오.

    관련 FAQ : IAM 인증을 사용하여 API 호출 시 API 호출이 왜 실패하나요?

    :::(Info) (참고)
    

    API 인증 방법이 IAM 또는 IAM + AUTHORIZATION 인 경우, 아래와 같이 API 호출 시 IAM 인증이 필요합니다. API 인증 방법 설정은 메서드 생성을 참조해 주십시오.
    :::

    헤더설명
    x-ncp-apigw-api-keyAPI Gateway에서 발급받은 키(Primary Key 또는 Secondary Key)
    API Key를 요구하는 경우에만 추가
    x-ncp-apigw-timestamp1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(millisecond)로 나타낸 것
    API Gateway 서버와 시간차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
    x-ncp-iam-access-key포털 또는 Sub Account에서 발급받은 Access Key ID
    x-ncp-apigw-signature-v2Access 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 호출 시 나타날 수 있는 에러 코드의 종류와 설명은 다음과 같습니다.

    HttpStatusCodeErrorCodeErrorMessage설명
    400100Bad Request Exceptionprotocol(https), endocing(UTF-8) 등 request 에러
    401200Authentication Failed인증 실패
    401210Permission Denied권한 없음
    403230Forbidden권한 없음
    404300Not Found ExceptionNot found
    429400Quota ExceededQuota 초과
    429410Throttle LimitedRate 초과
    429420Rate LimitedRate 초과
    413430Request Entity Too Large요청 엔티티 크기 초과
    415440Unsupported Media Type지원되지 않는 미디어 유형
    503500Endpoint Error엔드포인트 연결 에러
    504510Endpoint Timeout엔드포인트 연결 시간 초과
    503520Unknown Endpoint Domain알 수 없거나 설정 되지 않은 엔드포인트
    503530Connection Closed By Endpoint엔드포인트 연결 닫힘
    500900Unexpected Error예외 처리가 안된 에러

    에러 응답 형식

    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가지 종류가 있습니다. 각 문서에 대한 내용은 해당 사용 가이드를 참고해 주십시오.

    Catalog 확인

    게시된 API 문서의 개요(Overview)와 설명서(Document)를 확인할 수 있습니다. 개요의 경우 내용을 수정할 수 있습니다.

    참고
    • Catalog를 확인하려면 먼저 API를 Stage에 배포한 후 해당 Stage를 게시해야 합니다. API를 게시하는 방법은 API 게시를 참고해 주십시오.
    • 다른 사용자가 게시하여 공개한 Catalog를 참고 및 구독할 수 있습니다. 자세한 내용은 Published APIs 사용 가이드를 참고해 주십시오.

    Catalog를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 Catalog를 확인할 Product의 Catalog 열의 i-apigateway-view을 클릭해 주십시오.
    4. 해당 Product의 API 목록에서 Catalog를 확인할 API의 이름을 클릭해 정보를 확인해 주십시오.
      • Overview: API 설명서의 개요
        • 수정하려면 [수정] 버튼을 클릭해 [입력] 탭의 입력란에 내용을 입력한 후 [저장] 버튼을 클릭
        • 수정 작성한 내용을 미리 확인하려면 [미리보기] 탭 클릭
      • API 설명서
        • 게시된 API 설명서 내용을 Swagger UI 형태로 확인하려면 Stage 이름 또는 i-apigateway-view을 클릭

    API 게시

    개발한 API를 다른 사용자가 API 설명서를 참고하여 사용할 수 있도록 게시할 수 있습니다.

    API를 게시하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 게시 열의 i-apigateway-publish을 클릭해 주십시오.
    4. 해당 Product의 Catalog 목록에서 게시할 API의 이름을 클릭하고 [게시] 버튼을 클릭해 주십시오.
    5. 게시 성공 팝업 창이 나타나면 [확인] 버튼을 클릭해 주십시오.

    Stage에 API Key 연결 및 관리

    API Keys 메뉴에서 생성한 API Key를 Stage에 등록하고, 사용 상태 및 API 사용량을 설정할 수 있습니다.

    API Key 연결

    Stage에 API Key를 연결하는 방법은 다음과 같습니다.

    참고

    Stage에 API Key를 연결하려면 먼저 API Key를 생성해야 합니다. 자세한 내용은 API Keys 사용 가이드를 참고해 주십시오.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 API Keys 열의 i-apigateway-apikeys을 클릭해 주십시오.
    4. [내 API Key 추가] 버튼을 클릭해 주십시오.
    5. 내 API Key 추가 팝업 창에서 연결할 API Key를 클릭해 선택한 후 [추가] 버튼을 클릭해 주십시오.
      • API Key 이름을 입력한 후 i-apigateway-find을 클릭해 원하는 API Key를 빠르게 찾을 수 있습니다.
    6. API Key 목록 화면에서 Stage에 연결된 API Key가 추가되었는지 확인해 주십시오.

    API Key가 연결된 후의 API Key 목록에 대한 설명은 다음과 같습니다.
    apigw-myproducts-apikeys_ko

    영역설명
    내 API Key 추가Stage에 API Key를 연결
    상태 변경API에 대한 API Key의 사용 상태를 변경
    Usage PlansAPI Key에 대한 Usage Plan 변경
    ④ 검색창검색 조건을 선택하고 검색어를 입력한 후 i-apigateway-find을 클릭해 항목 검색
    ⑤ 필터API Key의 사용 상태에 따라 목록을 정렬
    ⑥ 정렬목록 페이지당 표시할 API Key 개수 설정
    ⑦ API Key 목록해당 Stage에 연결된 API Key 항목
    • API Key ID: Stage에 연결한 API Key의 ID
    • API Key 이름: Stage에 연결한 API Key의 이름
    • Primary Key: Stage에 연결한 API Key의 Primary Key
    • Secondary Key: Stage에 연결한 API Key의 Secondary Key
    • 상태: 현재 API Key의 상태(요청, 승인, 거부, 요청 거부, 요청 차단) 표시
    • 요청 일시: API Key와 Stage 연결을 요청한 일시
    • 수정 일시: API Key의 상태를 수정한 일시

    API Key의 상태 변경

    API에 대한 API Key의 사용 상태를 변경할 수 있습니다.

    API Key의 사용 상태를 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 API Keys 열의 i-apigateway-apikeys을 클릭해 주십시오.
    4. API Key 목록 화면에서 상태를 변경할 API Key를 클릭해 선택한 후 [상태 변경] 버튼을 클릭해 주십시오.
    5. 상태 팝업 창에서 상태를 선택해 변경한 후 [저장] 버튼을 클릭해 주십시오.
      • 요청: API Key 승인을 요청한 상태
      • 승인: API를 호출할 수 있는 상태
      • 거부: 승인된 API Key가 API를 호출할 수 없도록 거부한 상태
      • 요청 거부: API Key 승인 요청을 거부한 상태
      • 요청 차단: API Key 승인 요청을 차단한 상태

    API Key의 Usage Plan 변경

    API Key의 Usage Plan을 변경하는 방법은 다음과 같습니다.

    참고
    • 사용량은 일/월의 시작을 기준으로 카운트됩니다.
    • 엔드포인트의 응답 코드에 따라 사용량이 카운트됩니다.
    • API Key 필요 설정을 활성화해야만 Usage Plan이 적용됩니다. API Key 필요 설정 방법은 메서드 생성 을 참고해 주십시오.
    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Application Services > API Gateway 메뉴를 차례대로 클릭해 주십시오.
    2. My Products 메뉴를 클릭해 주십시오.
    3. Product 목록에서 대상 Product의 API Keys 열의 i-apigateway-apikeys을 클릭해 주십시오.
    4. API Key 목록 화면에서 Usage Plan을 변경할 API Key를 클릭해 선택한 후 [Usage Plans] 버튼을 클릭해 주십시오.
    5. 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에 설정된 월별 요청 처리 한도 값 표시
    6. 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

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.