제한 사항
이 글은 아래와 같은 전제를 가지고 설명합니다. 양해 부탁드립니다.- 데이터 파이프라인(Xplent에서는 패키지)은 이미 생성되어 있다.
- Crul, Postman, Insomnia 등의 HTTP/HTTPS 클라이언트 사용 경험이 있다.
- Rest API 조작에 익숙하다.
- API에 대한 자세한 내용은 github(영어)를 참고하시기 바랍니다.
Xplenty Rest API 기본 정보
Xplenty의 Rest API는 Xplenty가 제공하는 HTTPS 기반의 RESTful API 모음으로, 사용 방법도 일반적인 RESTful API 사용과 차이가 없습니다. 이 글에서는 github의 내용을 기준으로 Rest API의 실습을 진행하고자 합니다.Rest API URL
**https://api.xplenty.com/**``**<account_id>/api/<reosource_name**

- <reosurce_name>에 대해서는 Xplenty의 주요 리소스 소개 부분을 참고하시기 바랍니다.
인증 방식
- HTTP Basic을 사용하고 있으며, 모든 Xplenty Rest API는 인증이 반드시 필요합니다.
- 사용자 이름은 Xplenty의 API KEY를 지정하며, 비밀번호는 지정할 필요가 없다.
-
curl로 지정 -
-d <API_KEY>:

- 단, 현재 API KEY 요청은 Live Chat을 통해 문의해 주시기 바랍니다!
호출 횟수 제한
- 사용자당 1시간에 5000회의 호출 횟수 제한(credit)이 있습니다.
- 지정된 호출 횟수 초과 시 429 Too Many Requests를 반환한다.
Rest API 호출 예시
이제 Xplenty의 Rest API 호출 샘플을 각각의 HTTP/HTTPS 클라이언트를 통해 소개하겠습니다. 예시 설명은 List Jobs를 사용하여 HTTP/HTTPS 클라이언트 상에서 API 호출을 수행합니다. Xplenty가 제공하는 모든 API의 목록은 이 링크를 참고하시기 바랍니다.GUI 앱을 통한 호출
잘 알려진 HTTP/HTTPS 클라이언트인 Postman과 Insomnia를 사용하여 Xplenty의 Rest API를 호출 해 보겠습니다.- Rest API의 URL을 주소창에 설정
- 위의 URL에 대해 적절한 메서드(여기서는 GET)를 선택합니다.
- 인증(Authentication)에서 방법을 Basic으로 선택한 후, username에는 API_KEY를 입력하고 password는 비워둔다.

- Header에 호출 시 필요한 Header를 해당 API의 문서를 참고하여 적절히 설정한다.

- Send 버튼을 눌러 응답을 확인한다.

Curl 명령어로 호출하기
커맨드 라인에 의한 조작에 익숙한 분이라면 curl 명령어를 잘 사용하고 있을것으로 생각합니다. curl의 조작 방법이 궁금하다면 아래 두 가지 자료를 참고하면 좋을 것 같다. 앞의 Postman과 동일한 조작을 curl 명령어로 실행합니다. 호출 시 필요한 정보는 아래의 옵션을 사용하여 설정해 주시면 됩니다.- -X : 메서드 지정(GET 지정)
-
-u : Baisc 인증 설정(
<API_KYE>:) - URL : 작업 목록 조회를 위한 REST API의 URL
- -H : Rest API 호출 시 필요한 헤더 정보
- 요청 (Curl Call)
-H “Accept: application/vnd.xplenty+json; version=2”
- 응답 { “id”: 304, “status”: “failed”, “variables”: { “InputPath”: ”‘/today’” }, “owner_id”: 1, “progress”: 0, “outputs_count”: 0, “outputs”: [], “started_at”: “2013-03-04T08:02:20Z”, “created_at”: “2013-03-04T08:02:17Z”, “updated_at”: “2013-03-04T08:03:01Z”, “failed_at”: null, “cluster_id”: 176, “package_id”: 103, “errors”: “Package failed to execute.”, “runtime_in_seconds”: 40, “completed_at”: “2013-03-04T08:03:01Z”, “url”: “https://api.xplenty.com/xplenation/api/jobs/304”, “html_url”: “https://xplenty.com/xplenation/jobs/304”, “log_url”: “https://api.xplenty.com/xplenation/api/jobs/304/log”, “creator”: { “type”:“Schedule”, “id”:1, “display_name”: “Schedule 1”, “url”: “https://api.xplenty.com/xplenation/api/schedules/1”, “html_url”: “https://xplenty.com/xplenation/schedules/1” }, “package”: { “id”: 2373, “name”: “AWS CloudFront Log Analysis”, “description”: “This package processes AWS CloudFront logs and extracts traffic information by time, geography and URIs”, “variables”: {}, “owner_id”: 8, “created_at”: “2014-03-12T07:09:18Z”, “updated_at”: “2014-04-13T19:38:04Z”, “url”: “https://api.xplenty.com/xplenation/api/packages/2373”, “status”:“active” }, “cluster”: { “id”: 99, “name”: “Daily Outliers Test #100”, “description”: “Daily Outliers Test”, : : “bootstrap_actions”: [{ “script_path”: “http://xplenty.s3.amazonaws.com/bootstrap-actions/file1.tar.gz”, “args”: [“arg1”, “arg2”] }, { “script_path”: “http://xplenty.s3.amazonaws.com/bootstrap-actions/file1.tar.gz”, “args”: [“arg1”] }], “creator”: { “type”:“Schedule”, “id”:1, “display_name”: “Schedule 1”, “url”: “https://api.xplenty.com/xplenation/api/schedules/1”, “html_url”: “https://xplenty.com/xplenation/schedules/1” } } }, { : : }, { : : }