API 프록시 개발

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

API 프록시를 구현하여 Apigee에 API를 노출합니다. API 프록시는 앱용 API를 백엔드 서비스에서 분리하고 백엔드 코드 변경으로부터 앱을 보호합니다.

다음 섹션에 설명된 대로 Cloud Code에서 Apigee를 사용하여 API 프록시를 개발합니다. Apigee 작업공간의 폴더 및 파일 관리도 참조하세요.

API 프록시 만들기

{code_name}에서 Apigee를 사용하여 API 프록시를 만들려면 다음 안내를 따르세요.

  1. 다음 작업 중 하나를 수행합니다.

    • Apigee 섹션에서 apiproxies 폴더 위에 커서를 놓고 만들기 아이콘를 클릭합니다.

      apiproxies 폴더 위에 커서를 놓으면 +가 표시됨

    • 보기 > 명령어 팔레트를 선택하여 명령어 팔레트를 열고 Cloud Code: Apigee 프록시 번들 만들기를 선택합니다.

    프록시 만들기 마법사가 열립니다.

  2. 다음 옵션 중 하나를 선택합니다.

    유형 설명
    Reverse proxy

    인바운드 요청을 기존 HTTP 백엔드 서비스로 라우팅하는 API 프록시입니다. JSON 또는 XML API일 수 있습니다. 이 섹션의 뒷부분에 나오는 HTTP 서비스용 역방향 프록시 만들기를 참조하세요.

    No target

    API 백엔드가 없는 API 프록시('no target')입니다. API 프록시 세부정보를 정의할 때 기존 대상 URL을 지정하지 않는다는 점을 제외하면 HTTP 서비스용 역방향 프록시 만들기와 유사합니다.

다음 섹션에서는 각 API 프록시 유형을 만드는 데 필요한 추가 단계를 설명합니다.

HTTP 서비스용 역방향 프록시 만들기

Apigee는 다음 정보를 기준으로 역방향 API 프록시를 생성합니다.

  • 백엔드 서비스의 URL
  • API 프록시에서 소비자 앱에 노출되는 API 를 고유하게 식별하는 URI 경로입니다.

API 프록시를 만들 때 역방향 프록시를 선택하면 다음 표에 설명된 보안 인증API 프록시 세부정보를 입력하라는 메시지가 표시됩니다.

보안 인증에 대해 다음 옵션 중 하나를 선택합니다.

보안 인증 설명
API key based authentication

정의하려는 API 프록시에 간단한 API 키 확인을 추가합니다. Apigee는 API 프록시에 자동으로 다음 정책을 추가합니다.

  • VerifyAPIKey는 앱을 요청하여 표시되는 API 키의 유효성을 검사합니다.
  • AssignMessage는 백엔드 서버로 전달되는 요청에서 쿼리 매개변수로 API 호출에 제공되는 API 키를 삭제합니다.
Access token based authentication

API 프록시에 OAuth 2.0 기반 인증을 추가합니다. Apigee는 API 프록시에 자동으로 다음 정책을 추가합니다.

  • VerifyAPIKey: 액세스 토큰을 확인합니다.
  • AssignMessage: 인증을 위해 전달된 Authorization 헤더를 삭제합니다.
액세스 토큰을 사용하여 인증하는 방법을 알아보려면 액세스 토큰 확인을 참조하세요.
No authentication 인증이 필요하지 않습니다. Apigee의 보안 확인 없이 백엔드에 요청이 전달됩니다.

API 프록시 세부정보의 경우 다음 각 프롬프트에 응답하고 Enter 키를 눌러 확인하고 계속하거나 Esc 키를 눌러 마법사를 취소하세요.

필드 설명
Backend target URL 이 API 프록시가 호출하는 백엔드 서비스의 URL입니다.
API proxy name API에 표시되는 이름입니다. 영숫자 문자, 대시(-) 또는 밑줄 (_)을 사용하여 지정하세요.
API proxy base path API 프록시의 http://[host] 또는 https://[host] 주소 뒤에 표시되는 URI 프래그먼트입니다. Apigee는 기본 경로 URI를 사용하여 수신되는 요청 메시지를 적절한 API 프록시에 일치시키고 라우팅합니다.

기본 경로에 와일드 카드 사용

API 프록시 기본 경로에서 하나 이상의 /*/ 와일드 카드를 사용하여 API 프록시를 향후에 대해 보호합니다. 예를 들어 /team/*/members를 기본 경로로 사용하면 클라이언트가 새로운 팀을 지원하기 위해 새로운 API 프록시를 만들 필요 없이 https://[host]/team/blue/membershttps://[host]/team/green/members를 호출할 수 있습니다. /**/는 지원되지 않습니다.

마법사에서 단계를 완료하면 Apigee 섹션에서 apiproxies 아래에 새 apiproxy-name 폴더가 추가됩니다. 각 API 프록시 폴더는 API 프록시 구성 디렉터리 구조에서 설명하는 구조를 갖습니다.

다음은 helloworld라는 역방향 API 프록시용으로 생성된 기본 구성 및 API 키 기반 인증을 지원하기 위해 추가된 정책의 예시입니다.

Apigee 섹션에서 역방향 프록시의 폴더 구조 표시

기본 구성에 대한 설명은 기본 API 프록시 구성 살펴보기를 참조하세요.

백엔드 대상 없이 API 프록시 만들기

백엔드 대상이 없는 API 프록시를 만드는 프로세스는 백엔드 서비스(Target (Existing API))의 URL을 지정하라는 메시지가 표시되지 않고 기본 대상 엔드포인트 구성이 포함되지 않는 다는 점을 제외하면 역방향 프록시를 만드는 프로세스와 동일합니다. 자세한 내용은 HTTP 서비스용 역방향 프록시 만들기를 참조하세요.

기본 API 프록시 구성 살펴보기

다음 표에서는 선택한 API 프록시 유형과 인증 옵션에 따라 API 프록시를 만들 때 기본 구성에 포함되는 내용을 요약하여 보여줍니다.

fileReverse 프록시 구성
역방향 프록시
대상 없음
OAuthV2 인증
API 키 인증
proxies/default.xml
기본 프록시 엔드포인트 구성
   
targets/default.xml
기본 대상 엔드포인트 구성
     
impose-quota.xml
Quota 정책: 기본 할당량을 정의합니다.
   
remove-header-authorization.xml
AssignMessage 정책: 인증을 위해 전달된 Authorization 헤더를 삭제합니다.
    >
 
remove-query-param-apikey.xml
AssignMessage 정책: 인증을 위해 전달된 apikey 쿼리 매개변수를 삭제합니다.
     
verify-api-key.xml
VerifyAPIKey 정책: API 키 인증을 적용합니다.
     
verify-oauth-v2-access-token.xml
OAuthV2: OAuth V2 액세스 토큰을 검증합니다.
   
 

API 프록시 번들 업로드

API 프록시 번들을 Cloud Code의 Apigee에 업로드하려면 다음 안내를 따르세요.

  1. 다음 작업 중 하나를 수행합니다.

    • Apigee 섹션에서 apiproxies 폴더 위에 커서를 놓고 업로드 아이콘를 클릭합니다.

    • 보기 > 명령어 팔레트를 선택하여 명령어 팔레트를 열고 Cloud Code: Apigee 프록시 번들 가져오기을 선택합니다.

  2. 업로드할 API 프록시 번들로 이동하고 프록시 가져오기를 클릭합니다. API 프록시 번들은 API 프록시 구성 디렉터리 구조의 설명대로 구조화되어야 합니다.

  3. (선택사항) 기본적으로 ZIP 파일 이름에서 확장자를 삭제하여 API 프록시 이름에 사용합니다. 이 이름이 고유하지 않은 경우 고유한 이름을 입력하라는 메시지가 표시됩니다.

업로드된 apiproxy-name 폴더가 Apigee 섹션에서 apiproxies 아래에 추가됩니다.

프록시 엔드포인트 관리

API 프록시란 무엇인가요?에서 설명한 것처럼, 프록시 엔드포인트(ProxyEndpoint)는 클라이언트 앱이 API를 사용하는 방식을 정의합니다. 프록시 엔드포인트를 구성하여 API 프록시의 URL을 정의합니다. 또한 프록시 엔드포인트는 앱이 HTTP 또는 HTTPS를 통해 API 프록시에 액세스할지 여부를 결정합니다. 프록시 엔드포인트에 정책을 연결하여 보안, 할당량 확인, 기타 유형의 액세스 제어 및 비율 제한을 적용할 수 있습니다.

다음 섹션에 설명된 대로 프록시 엔드포인트를 만들고 구성합니다.

프록시 엔드포인트 만들기

API 프록시를 만들면 기본 프록시 엔드포인트가 API 프록시 구성에 추가됩니다. 자세한 내용은 기본 API 프록시 구성 살펴보기를 참조하세요. 필요에 따라 추가 프록시 엔드포인트를 만들 수 있습니다.

Cloud Code에서 Apigee를 사용하여 프록시 엔드포인트를 만들려면 다음 안내를 따르세요.

  1. Apigee 섹션에서 다음 작업 중 하나를 수행합니다.

    • Apigee 섹션에서 다음 폴더 중 하나에 커서를 놓고 만들기 아이콘를 클릭한 후 프록시 엔드포인트 만들기를 선택합니다.
      • apiproxy-name 프록시 번들
      • apiproxy-name/apiproxy
    • Apigee 섹션에서 apiproxy-name/apiproxy/proxies 폴더 위에 커서를 놓고 만들기 아이콘를 클릭합니다.

    프록시 엔드포인트 만들기 마법사가 열립니다.

  2. 다음에 표시되는 여러 프롬프트에 값을 입력합니다. 확인 후 계속하려면 각각 Enter 키를 누르고, 취소하려면 Esc 키를 누릅니다.

    필드 설명
    Proxy endpoint name 프록시 엔드포인트를 식별하는 데 사용되는 이름입니다.
    API proxy base path API에 요청을 보내는 데 사용되는 URL의 일부입니다. Apigee는 URL을 사용하여 수신 요청을 적절한 API 프록시로 일치시키며 라우팅합니다.

엔드포인트가 생성되고 Apigee 섹션의 apiproxy-name/apiproxy/proxies 폴더에 추가되고 편집기에서 열립니다. 다음 섹션에 설명된 대로 프록시 엔드포인트를 구성합니다.

프록시 엔드포인트 구성

프록시 엔드포인트를 구성하려면 다음 섹션을 참조하세요.

대상 엔드포인트 관리

API 프록시란 무엇인가요?에서 설명한 대로 대상 엔드포인트(TargetEndpoint)는 API 프록시가 백엔드 서비스와 상호작용하는 방식을 정의합니다. 보안 설정, HTTP 또는 HTTPS 프로토콜, 기타 연결 정보를 정의하는 등의 요청을 적절한 백엔드 서비스로 전달하도록 대상 엔드포인트를 구성합니다. 초기 요청을 보낸 앱의 응답 메시지 형식이 올바르게 지정되도록 대상 엔드포인트에 정책을 연결할 수 있습니다.

이 섹션에 설명된 대로 대상 엔드포인트를 만들고 구성합니다.

대상 엔드포인트 만들기

역방향 API 프록시를 만들 때 기본 대상 엔드포인트가 API 프록시 구성에 추가됩니다. 백엔드 대상이 없는 API 프록시를 만들면 기본 프록시 엔드포인트만 API 프록시 구성에 추가되며 대상 엔드포인트는 추가되지 않습니다. 자세한 내용은 기본 API 프록시 구성 살펴보기를 참조하세요.

필요에 따라 대상 엔드포인트를 만듭니다.

Cloud Code에서 Apigee를 사용하여 대상 엔드포인트를 만들려면 다음 안내를 따르세요.

  1. Apigee 섹션에서 다음 작업 중 하나를 수행합니다.

    • Apigee 섹션에서 다음 폴더 중 하나에 커서를 놓고 만들기 아이콘를 클릭한 후 대상 엔드포인트 만들기를 선택합니다.
      • apiproxy-name 프록시 번들
      • apiproxy-name/apiproxy
    • Apigee 섹션에서 apiproxy-name/apiproxy/targets 폴더 위에 커서를 놓고 만들기 아이콘를 클릭합니다.

    대상 엔드포인트 만들기 마법사가 열립니다.

  2. 만들려는 대상 엔드포인트 유형에 따라 다음 단계를 수행합니다.

    유형 단계
    외부 HTTP(s) 대상

    외부 HTTP(s) 대상을 정의하려면 다음 안내를 따르세요.

    1. HTTP(s) 대상을 선택합니다.
    2. 대상 엔드포인트 이름에 대상 엔드포인트의 이름을 입력합니다.
    3. 백엔드 대상 URL에 이 대상 엔드포인트가 호출하는 백엔드 서비스의 URL을 입력합니다.

    자세한 내용은 대상 엔드포인트의 URL 확인을 참조하세요.

    프록시 체인

    로컬에 배포된 API 프록시를 대상으로 정의하려면 다음 안내를 따르세요.

    1. 프록시 체인을 선택합니다.
    2. 대상 엔드포인트 이름에 대상 엔드포인트의 이름을 입력합니다.
    3. API 프록시를 선택합니다.
    4. 프록시 엔드포인트를 선택합니다.

    자세한 내용은 프록시 체인을 참조하세요.

    부하 분산 대상

    환경에 정의된 대상 서버를 사용하여 부하가 분산된 대상을 정의하려면 다음 안내를 따르세요.

    1. 부하 분산 대상을 선택합니다.
    2. 대상 엔드포인트 이름에 대상 엔드포인트의 이름을 입력합니다.

    자세한 내용은 명명된 TargetServer에 부하를 분산하도록 TargetEndpoint 구성을 참조하세요.

대상 엔드포인트가 생성되고 Apigee 섹션의 apiproxy-name/apiproxy/targets 폴더에 추가되고 편집기에서 열립니다. 다음 섹션에 설명된 대로 대상 엔드포인트를 구성합니다.

대상 엔드포인트 구성

다음 주제의 설명에 따라 대상 엔드포인트를 구성합니다.