Przetwarzanie interfejsu API Groupon za pomocą programu Altova MapForce

Często myślimy o projekt integracji danych jako tłumaczenie z jednego, pojedynczego pliku danych na inny zestaw danych, ale Altova MapForce umożliwia znaczące rozszerzenie koncepcji pliku wejściowego. Na przykład, przykład "MergeMultipleFiles.mfd" dołączony do MapForce ilustruje, jak można użyć nazwy pliku zawierającej znaki wieloznaczne, aby połączyć wiele plików wejściowych w jeden plik wynikowy.

Konfiguracja MapForce nie musi być zapisana w fizycznym pliku – może to być adres URL, który zwraca ustrukturyzowane dane, takie jak interfejsy API popularnych stron internetowych, takich jak Groupon, i wiele innych. W tym wpisie na blogu opisujemy, jak wykorzystać narzędzia Altova do pobierania, filtrowania, analizowania i prezentowania danych dostępnych za pośrednictwem interfejsu API działającego w sieci, używając Groupon jako przykładu. Jeśli chcesz samodzielnie wykonać te kroki, najpierw musisz odwiedzić stronę http://www.groupon.com/pages/api, aby uzyskać swój osobisty klucz klienta API Groupon.

Problem: Wszystkie transakcje są realizowane lokalnie

Strona internetowa Groupon oraz subskrypcje e-mail są świetne do znajdowania promocji w Twojej okolicy, ale co, jeśli szukasz oferty na nadchodzące wakacje lub prezent dla przyjaciół lub rodziny z innego regionu kraju? Oczywiście, możesz ręcznie wprowadzać każdą lokalizację na stronie internetowej Groupon, ale to już technologia sprzed wieków. Użyjmy Altova MissionKit, aby zautomatyzować ten proces. API Groupon oferuje dwa zapytania URL, które zwracają dane w formatach .json lub .xml: pierwsze zwraca listę wszystkich lokalizacji Groupon (nazywanych "podziałami"), a drugie zwraca aktualne informacje o promocjach dla konkretnego podziału. Jeśli chcemy zobaczyć wszystkie promocje dla więcej niż jednego podziału, musimy przetworzyć wiele adresów URL i połączyć dane w jeden wynik. Tak, MapForce potrafi to zrobić!

Najpierw potrzebujemy schematu

Dokumentacja API Groupon opisuje elementy, które będą zwracane przez nasze zapytania, ale nie zawiera schematu XML. To nie problem, możemy użyć MapForce do wygenerowania takiego schematu. Musimy tylko otworzyć nowy projekt mapowania i wybrać opcję "Wstaw schemat XML/plik", a następnie kliknąć przycisk "Przełącz na adres URL". Teraz możemy wprowadzić adres URL, z którego pobierzemy listę podziałów Groupon:

Po kliknięciu przycisku "Otwórz", MapForce oferuje opcję wygenerowania schematu

Po kliknięciu przycisku "Tak" otwiera się okno dialogowe "Plik / Zapisz". Zapisuję schemat jako "divisions.xsd", a przypisanie z nowym schematem XML wygląda następująco:

Oraz okno dialogowe "Właściwości" dla komponentu schematu XML automatycznie zawiera adres URL API/podziałów jako plik XML wejściowy

Sprawdź pracę

Chcemy przefiltrować dane dotyczące podziałów firmy Groupon, aby stworzyć listę nazw identyfikatorów, które będą używane do zapytań o oferty dla każdej lokalizacji. Ale zanim przejdziemy dalej, teraz może być dobry moment, aby zastosować trik z plikiem tekstowym, o którym mowa w artykule blogowym "Szybkie rozwiązanie dla skomplikowanych funkcji", aby przyjrzeć się wartościom identyfikatorów. Po wstawieniu pliku tekstowego i połączeniu elementów schematu podziałów i identyfikatorów, mapowanie wygląda następująco:

Połączyliśmy element podziału z wierszami w pliku tekstowym, aby dla każdego unikalnego podziału generowany był nowy wiersz w pliku tekstowym, tak aby pole "Field1" w każdym wierszu zawierało identyfikator. Kliknięcie przycisku "Output" generuje teraz następujący wynik:

Musimy jedynie zastosować funkcję `concat string w celu utworzenia listy adresów URL typu "/deal" dla wszystkich identyfikatorów podziałów. Następnym krokiem w procesie mapowania jest następujący:

Przesuwając kursor nad stałą powiązaną z wartością "value1" funkcji "concat", wyświetlana jest jej pełna definicja:

Po kliknięciu przycisku "Wyjście", aby uruchomić proces mapowania, plik wynikowy wygląda teraz w następujący sposób:

W celu dalszej weryfikacji, możemy otworzyć wygenerowany schemat XML w programie XMLSpy i wyświetlić go w formie graficznej, w widoku schematu

Dotychczas mamy:

  • Stworzono mapowanie w MapForce, które wysyła zapytania do API Groupon w celu pobrania danych dla wszystkich działów
  • Wyodrębniłem pola identyfikujące podział
  • i stworzył listę adresów URL, które służą do zapytań do API, w celu uzyskania informacji o ofertach w każdej z działów

W kolejnym wpisie tej serii przetworzymy listę zapytań dotyczących transakcji, wykorzystując ją jako dane wejściowe dla nowego komponentu mapowania, a następnie przefiltrujemy wynik, aby wydobyć interesujące informacje. Sprawdź sam, jak łatwo jest wykorzystać MapForce do konwersji danych z interfejsu API!

Pobierz bezpłatną 30-dniową wersję próbną programu MapForce.

Uwaga redakcji: Nasza oryginalna seria artykułów na temat mapowania danych z API Groupon składała się z trzech części, do których można sięgnąć, klikając poniższe linki: Część 1, zatytułowana "Przetwarzanie API Groupon za pomocą Altova MapForce", opisuje, jak tworzyć dynamiczne źródła danych, pobierając informacje z wielu adresów URL. Przetwarzanie API Groupon za pomocą MapForce – Część 2 wyjaśnia, jak filtrowaliśmy dane z API i definiowaliśmy wynik, aby wydobyć tylko najbardziej interesujące szczegóły. Przetwarzanie API Groupon – Część 3 opisuje formatowanie wyniku jako pojedynczego dokumentu HTML, zoptymalizowanego dla urządzeń stacjonarnych i mobilnych, oraz omawia sposoby automatyzacji powtarzalnego wykonywania.