개발 도구

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

서비스 제공업체는 클라이언트 앱에서 사용할 수 있는 API를 개발합니다. API 프록시와 API 제품을 생성, 구성, 유지하려면 다음 섹션의 설명대로 UI를 사용하거나 API에 HTTP 요청을 전송하여 RESTful 서비스에 액세스할 수 있습니다.

Edge UI 사용

Apigee Edge UI는 API 프록시와 API 제품을 생성, 구성, 관리하는 데 사용할 수 있는 브라우저 기반 도구입니다. 일부 태스크도 API를 사용해서만 실행할 수 있습니다.

다음 표에서는 Edge UI에 액세스하는 방법을 설명합니다.

제품 UI 이름 액세스 URL
에지 Edge UI

Edge UI에 액세스하려면 다음 URL을 사용합니다.

https://apigee.com/edge

Edge UI를 사용하는 방법에 대한 가이드는 첫 번째 API 프록시 빌드를 참조하세요.

프라이빗 클라우드용 에지 클래식 Edge UI

Private Cloud용 Edge용 Edge UI에 액세스하려면 다음 URL을 사용합니다.

http://ms-ip:9000

여기서 ms-ip은 관리 서버 노드의 IP 주소 또는 DNS 이름입니다.

Edge UI를 사용하여 다음 작업을 할 수 있습니다.

  • 코드를 수정하고 프록시를 통한 요청 흐름을 추적하여 API 프록시를 만듭니다.
  • 클라이언트 요청에 노출하기 위해 프록시를 번들로 묶는 API 제품을 만듭니다.
  • 개발자 및 개발자 앱 관리
  • 테스트 및 프로덕션 환경을 구성합니다.
  • JavaScript 및 Node.js 애플리케이션을 구현합니다.

다음 이미지는 API 프록시를 만들고 구성하는 데 사용할 수 있는 UI의 API 프록시 편집기를 보여줍니다.

Edge UI의 API 프록시 편집기에서 선택한 개발 탭을 표시합니다.

Edge API 사용

Edge API를 사용하여 API 리소스를 관리할 수 있습니다. 또한 API는 UI에 의해 노출되지 않는 하위 수준 기능에 대한 액세스도 제공합니다.

API 엔드포인트는 종종 구성 정보가 포함된 데이터를 가져오며, 이러한 데이터에 액세스하려면 사용자 이름 및 비밀번호와 같은 인증 정보를 전달해야 합니다. RESTful 원칙에 따라 모든 API 리소스에서 HTTP GET, POST, PUT, DELETE 메서드를 호출할 수 있습니다.

Apigee Edge API의 전체 목록은 Apigee Edge API 참조를 확인하세요.

Edge API 기본 경로 이해

API 요청에서 사용할 경로는 다음을 연결합니다.

  • 조직 이름이 포함된 기본 경로. 예를 들면 https://api.enterprise.apigee.com/v1/organizations/org_name입니다.
  • 액세스 중인 Edge 리소스를 가리키는 엔드포인트

예를 들어 조직 이름이 apibuilders이면 API를 호출할 때마다 다음 기본 경로가 사용됩니다.

https://api.enterprise.apigee.com/v1/organizations/apibuilders

조직의 API 프록시 목록을 검색하려면 다음에서 GET을 호출합니다.

https://api.enterprise.apigee.com/v1/organizations/apibuilders/apis

많은 리소스의 범위가 환경별로 지정됩니다. 기본적으로 테스트와 프로덕션이라는 두 가지 환경이 제공됩니다. 예를 들어 캐시의 범위는 환경별로 지정됩니다. 'mycache'라는 공유 캐시는 기본적으로 모든 환경에 포함되어 있습니다.

다음과 같이 캐시 리소스에서 GET을 호출하여 캐시를 나열할 수 있습니다.

https://api.enterprise.apigee.com/v1/organizations/apibuilders/environments/test/caches
https://api.enterprise.apigee.com/v1/organizations/apibuilders/environments/prod/caches

액세스 인증

API를 호출할 때 API 서버에 자신을 인증해야 합니다. 다음 방법 중 하나로 이 작업을 수행할 수 있습니다.

또한 Apigee에서는 Apigee 계정에 2단계 인증 사용 설정에 설명된 대로 2단계 인증을 사용하는 것이 좋습니다.

Edge API 한도

각 조직은 다음과 같은 Edge API 호출 요금으로 제한됩니다.

  • 유료 요금제를 사용하는 조직의 경우 분당 통화 10,000회
  • 무료 체험 조직의 경우 분당 호출 600회

HTTP 상태 코드 401403은 이 한도에 포함되지 않습니다. 이 제한을 초과하는 호출은 429 Too Many Requests 상태 코드를 반환합니다.

Edge API 작업을 위한 팁

이 섹션에서는 Edge API를 더 쉽게 다룰 수 있는 몇 가지 기법을 설명합니다.

요청 URL 축약형

Edge API에 대한 요청 URL을 빌드할 때 다음과 같은 약어를 사용할 수 있습니다.

  • /e = /environments
  • /o = /organizations
  • /r = /revisions

약어를 사용하는 경우 일관성 있게 사용해야 합니다. 즉, 위에서 설명한 대로 경로의 모든 요소를 줄여 쓰거나 아예 약어를 사용하지 않을 수도 있습니다. 동일한 경로에서 전체 요소와 축약된 요소를 모두 사용하면 오류가 발생합니다.

예를 들면 다음과 같습니다.

THIS:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/environments/prod/apis/helloworld/revisions/1/deployments
CAN BE MUCH SHORTER:
https://api.enterprise.apigee.com/v1/o/ahamilton-eval/e/prod/apis/helloworld/r/1/deployments

curl 명령어 실행

HTTP 클라이언트를 사용하여 API에 요청합니다. 이 문서의 여러 예시에서는 널리 사용되는 HTTP 클라이언트인 curl를 사용하는 샘플 API 요청을 제공합니다. curl를 설치해야 하는 경우 http://curl.haxx.se에서 다운로드할 수 있습니다.

API 호출은 응답에서 gzip 압축을 지원합니다. API 호출에서 'Accept-Encoding: gzip, deflate'를 설정하면 1, 024바이트를 초과하는 응답은 gzip 형식으로 반환됩니다.

XML 및 JSON 요청과 응답 형식 지정

Edge API는 기본적으로 데이터를 JSON으로 반환합니다. 대다수 요청의 경우 대신 XML로 응답을 다시 받을 수 있습니다. 이렇게 하려면 다음 예시와 같이 Accept 요청 헤더를 application/xml로 설정합니다.

curl -H "Authorization: Bearer `get_token`" \
  -H "Accept: application/xml" \
  https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/apis/helloworld/revisions/1/policies/ \
  | xmllint --format -

다음과 같은 응답이 표시됩니다.

<List>
  <Item>SOAP-Message-Validation-1</Item>
  <Item>Spike-Arrest-1</Item>
  <Item>XML-to-JSON-1</Item>
</List>

이 예에서는 prettyprint를 사용하여 xmllint를 통해 응답을 파이핑하여 결과를 표시합니다.

acurl 유틸리티는 Accept 헤더를 지원하지 않습니다. 따라서 acurl로는 JSON 형식의 응답만 가져올 수 있습니다.

JSON 응답에 prettyprint를 사용하려면 json.tool Python 라이브러리를 사용하면 됩니다.

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/apis/helloworld/revisions/1/policies/ \
  -H "Accept: application/json" \
  -H "Authorization: Bearer `get_token`" \
  | python -m json.tool

다음은 응답의 예시입니다.

[
  "SOAP-Message-Validation-1",
  "Spike-Arrest-1",
  "XML-to-JSON-1"
]

XML의 경우 xmllint를 사용하면 됩니다.

curl https://ahamilton-eval-test.apigee.net/getstarted -u email_address | xmllint --format -

XML로 페이로드를 POST하거나 PUT 할 때는 Content-type HTTP 헤더를 사용합니다.

acurl -H "Content-type:text/xml" -X POST -d \
'<XMLPayload>
 </XMLPayload> ' \
https://api.enterprise.apigee.com/v1/organizations/apifactory/apis -u email_address

배포 환경

기본적으로 Apigee Edge를 사용하는 모든 조직에는 API 개발, 테스트, 배포에 사용할 수 있는 '테스트' 및 '프로덕션' 환경이 둘 이상 있습니다. API를 공개적으로 제공하기 전에 '테스트' 환경을 사용하여 API를 개발하고 테스트합니다. 내부 개발자만 테스트 환경에 배포된 API에 액세스할 수 있습니다. API를 'prod' 환경에 배포하여 앱 개발자가 공개적으로 사용할 수 있도록 합니다.

디버깅 및 테스트

Apigee는 엔드 투 엔드 요청 및 응답 흐름을 디버깅할 수 있는 추적 도구를 제공합니다. trace 결과에는 요청 및 응답 헤더와 페이로드, 정책 실행, 변수 값, 흐름 중에 발생할 수 있는 모든 오류가 표시됩니다.

문제 해결에 사용할 주요 데이터 포인트는 다음과 같습니다.

  • 타임스탬프: 타임스탬프를 사용하여 각 단계를 실행하는 데 걸리는 시간을 확인합니다. 타임스탬프를 비교하면 실행에 가장 오래 걸리는 정책 중 API 호출 속도를 늦추는 정책을 분리하는 데 도움이 됩니다.
  • 기본 경로: 기본 경로를 확인하여 정책이 메시지를 올바른 서버로 라우팅하도록 할 수 있습니다.
  • 정책 실행 결과: 이 결과를 통해 메시지가 XML에서 JSON으로 변환되는지, 메시지가 캐시되는지 등 메시지가 예상대로 변경되는지 확인할 수 있습니다.

다음 그림은 트레이스 결과를 보여줍니다.

Edge UI의 API 프록시 편집기에서 선택한 추적 탭을 표시합니다.

각 Trace 세션은 다음과 같은 주요 단계로 나뉩니다.

  • 클라이언트에서 수신된 원래 요청: 클라이언트 앱에서 보낸 요청의 동사 및 URI 경로, 헤더, 본문 데이터, 쿼리 매개변수를 표시합니다.
  • 백엔드 서비스로 전송된 요청: API 프록시가 백엔드 서비스로 보낸 요청 메시지를 표시합니다.
  • 백엔드 서비스에서 반환한 응답: 백엔드 서비스에서 반환한 응답 헤더와 페이로드를 표시합니다.
  • 클라이언트로 전송된 최종 응답: 응답 흐름이 실행되면 요청하는 클라이언트 앱으로 반환되는 응답 메시지입니다.