Altova MapForce를 사용하여 Groupon API를 처리하는 방법
우리는 종종 다음과 같은 것을 생각합니다 데이터 통합 프로젝트 데이터 입력 파일 하나를 다른 데이터 세트로 변환하는 과정이지만, 알토바 맵포스 (Altova MapForce) 이를 통해 입력 파일의 개념을 크게 확장할 수 있습니다. 예를 들어, MapForce에 함께 설치되는 "MergeMultipleFiles.mfd" 예제는 와일드카드 문자를 포함한 파일 이름을 사용하여 여러 개의 입력 파일을 하나의 출력 파일로 병합하는 방법을 보여줍니다.
![]()
MapForce 매핑 입력은 반드시 물리적인 파일일 필요가 없습니다. 예를 들어, Groupon과 같은 인기 웹사이트의 API처럼, 예측 가능한 구조화된 데이터를 반환하는 URL일 수도 있습니다. 이번 블로그 게시물에서는 Altova 도구를 사용하여 웹 기반 API에서 제공되는 데이터를 가져오고, 필터링하고, 분석하고, 표시하는 방법을 설명하겠습니다. Groupon을 예시로 들어 설명할 예정입니다. 직접 따라 해보고 싶으시다면, 먼저 http://www.groupon.com/pages/api에 접속하여 개인용 Groupon API 클라이언트 키를 요청해야 합니다.
문제점: 모든 거래는 지역적인 특성을 가집니다
Groupon 웹사이트와 이메일 구독 서비스는 지역 내 할인 정보를 찾는 데 유용하지만, 다가오는 여행을 위한 할인이나 전국 각지에 있는 친구나 가족을 위한 선물을 찾고 있다면 어떻게 해야 할까요? 물론, Groupon 웹페이지에서 각 지역을 일일이 입력할 수도 있지만, 그것은 너무나 구식적인 방법입니다. 이제 Altova MissionKit을 사용하여 자동화해 보겠습니다. Groupon API는 두 가지 URL 쿼리를 제공하며, 이 쿼리들은 데이터를 .json 또는 .xml 형식으로 반환합니다. 첫 번째 쿼리는 모든 Groupon 지역 목록(이하 "구역"이라고 함)을 반환하고, 두 번째 쿼리는 특정 구역에 대한 현재 할인 정보를 반환합니다. 만약 여러 구역의 모든 할인 정보를 확인하고 싶다면, 여러 URL을 처리하고 데이터를 하나의 결과로 통합해야 합니다. 물론, MapForce가 이 작업을 수행할 수 있습니다!
우선, 스키마가 필요합니다
Groupon API 설명서에는 요청에 의해 반환되는 요소들이 설명되어 있지만, XML 스키마는 제공되지 않습니다. 괜찮습니다. 우리는 MapForce를 사용하여 XML 스키마를 생성할 수 있습니다. 해야 할 일은 새로운 매핑 디자인을 열고 "XML 스키마/파일 삽입"을 선택한 다음 "URL로 전환" 버튼을 클릭하는 것입니다. 이제 Groupon의 분류 목록을 가져올 수 있는 URL을 입력할 수 있습니다
![]()
맵포스(MapForce)에서 "열기" 버튼을 클릭하면, 스키마를 생성할지 묻는 메시지가 나타납니다
![]()
"예"를 클릭하면 "파일/저장" 대화 상자가 열립니다. 저는 스키마를 "divisions.xsd"라는 이름으로 저장했고, 새로 삽입된 XML 스키마와 함께 매핑된 내용은 다음과 같습니다
![]()
XML 스키마 구성 요소의 속성 대화 상자에는 "입력 XML 파일" 필드에 API/divisions URL이 자동으로 포함되어 있습니다
![]()
작업 결과 확인
저희는 그루폰의 사업 부문 데이터를 필터링하여 각 지역에 대한 프로모션 검색에 사용할 ID 목록을 만들고 싶습니다. 하지만 더 진행하기 전에, "복잡한 함수를 위한 빠른 해결책 블로그 게시글에서 소개한 텍스트 파일 활용 방법을 사용하여 ID 값을 확인하는 것이 지금 좋은 시점일 수 있습니다. 텍스트 파일을 삽입하고 사업 부문과 ID 스키마 요소를 연결하면, 다음과 같은 매핑이 나타납니다
![]()
텍스트 파일 내에서 각 고유한 구분자(division)에 대해 새로운 행을 생성하기 위해, 구분자 요소를 텍스트 파일의 행과 연결했습니다. 이렇게 하면 각 행의 "Field1" 필드에 해당 식별자(id)가 저장됩니다. 이제 "출력" 버튼을 클릭하면 다음과 같은 결과가 생성됩니다
![]()
우리가 해야 할 일은 단순히 "concat 문자열 결합 함수를 사용하여 모든 사업부 ID에 대한 "/deal" URL 목록을 만드는 것입니다. 다음 단계는 다음과 같습니다
![]()
"concat" 함수의 "value1"에 연결된 변수에 커서를 올리면 해당 변수의 전체 정의가 표시됩니다
![]()
매핑 작업을 실행하기 위해 "출력" 버튼을 클릭하면, 출력 파일은 이제 다음과 같은 모습으로 나타납니다
![]()
추가적으로, 생성된 XML 스키마를 XMLSpy에서 열고, 그래픽 스키마 보기로 표시할 수 있습니다
![]()
지금까지 우리는 다음과 같은 결과를 얻었습니다
- 모든 사업 부문에 대한 정보를 가져오기 위해 Groupon API를 쿼리하는 MapForce 매핑을 구축했습니다
- 분류 ID 필드를 추출했습니다
- 그리고 각 사업 부문별로 제공되는 상품 정보를 얻기 위해 API 쿼리에 사용할 URL 목록을 만들었습니다
다음 게시물에서는 이 시리즈의 다음 단계로, 거래 관련 문의 목록을 새로운 매핑 구성 요소의 입력으로 사용하고, 그 결과를 분석하여 흥미로운 정보를 추출하겠습니다. 직접 MapForce를 사용하여 웹 API에서 데이터를 변환하는 것이 얼마나 쉬운지 확인해 보세요!
MapForce의 30일 무료 체험판을 다운로드하세요. ****
편집자의 글: 저희가 제공했던 Groupon API 데이터를 활용한 시리즈는 총 세 부분으로 구성되어 있으며, 아래 링크를 클릭하시면 각 부분을 확인하실 수 있습니다. 1부, Altova MapForce를 사용하여 Groupon API 처리하기에서는 여러 URL에서 데이터를 수집하여 동적인 입력 데이터를 생성하는 방법을 설명합니다. 2부, MapForce를 사용하여 Groupon API 처리하기 – 2부에서는 API에서 데이터를 필터링하고, 가장 흥미로운 정보만 추출하도록 출력 형식을 정의하는 방법을 설명합니다. 3부, Groupon API 처리 – 3부에서는 데스크톱 및 모바일 기기에 최적화된 단일 HTML 문서로 출력을 포맷하는 방법과, 반복적인 작업을 자동화하는 방법을 소개합니다.