Sieciowe usługi Application Programming Interfaces, w skrócie API, zmieniły sposób, w jaki łączymy ze sobą treść różnych stron. Karl Hodge wybrał 20 najlepszych internetowych API.
Mamy wspaniały pomysł na serwis
aukcyjny, w którym znajdą się
zdjęcia w wysokiej rozdzielczości?
A może myślimy o narzędziu, które jest połączeniem
recenzji restauracji i planu miasta?
Większość najcięższej pracy już zrobiono
– oto wiek API: Application Programming
Interface.
Internet to dojrzałe medium, które wchodzi
teraz w swoje drugie dziesięciolecie. Jeśli
chcemy przygotować e-komercyjną aplikację
lub interfejs z klientem poczty elektronicznej
online, rozsądnie jest użyć Amazona lub
Live Hotmaila, technologii, które udowodniły,
że działają. Tymczasem sieciowi innowatorzy,
tacy jak YouTube lub Flickr, zmieniają
internet, wprowadzając bogatą treść pochodzącą
od użytkowników. API umożliwia nam
wykorzystanie potencjału zarówno nowych,
jak i starych serwisów poprzez włączenie ich
funkcjonalności do naszych stron. Przedstawiamy
najlepszą dwudziestkę z nich…
20. 411Sync
http://www.411sync.com/cgi-bin/developer.cgi
Na pozycji 20, ale nie na szarym końcu znalazła
się Mobile API autorstwa 411Sync. Udostępnia
narzędzia umożliwiające dostarczanie
treści do telefonów komórkowych za pomocą
znajomej technologii RSS i jej rywala Atoma.
Sam 411Sync przypomina dedykowany
urządzeniom przenośnym Delicious – serwis
przechowujący zakładki prowadzony przez
społeczność.
19. Twitter
http://twitter.com//help/api
Nie jest to jeszcze MySpace. Twitter to społeczność,
której hasłem przewodnim jest pytanie:
co teraz robisz? Za pomocą API możemy
pobrać dane w formacie XML i połączyć je
ze swoim kodem lub innymi API. Listę otwierają
aplikacje, które pokazują lokalizację grup
użytkowników. W końcu Twitter to narzędzie
social networking.
18. BBC Web API
http://backstage.bbc.co.uk
Oto jest wyzwanie: BBC udostępnia radiowe
i telewizyjne treści za pomocą codziennego
zestawu danych do pobrania oraz API. Czy
można zrobić to lepiej niż serwis Radio Times
({link}http://www.radiotimes.com)? Listingi są
udostępniane w formacie TV Anytime, specyfikacji
na bazie XML, który na swój sposób stał
się standardem w internecie.
17. Facebook
http://developers.facebook.com
Social network, którego wychwalają media,
oferuje fragmenty kodu, biblioteki klienta oraz
przewodniki tworzenia aplikacji. Treść serwisu
tworzą użytkownicy. MySpace oferuje programistom
platformę, za pośrednictwem której
zyskujemy dostęp do wielu odbiorców. Aplikacje
są tworzone w PHP5 i FBML – stworzonym
przez Facebooka języku znaczników.
16. FeedBurner
http://feedburner.com/fb/a/developers/feedapi
FeedBurer, narzędzie do tworzenia kanałów
RSS, udostępnia programistom kilka API. Najbardziej
użytecznym jest FeedFlare API, który
umożliwia dołączenie do FeedBurnera nowej
funkcjonalności za pomocą XML-a. Szczegółowa
dokumentacja pomaga w tworzeniu
nowych funkcjonalności, o ile mamy już doświadczenie
w językach skryptowych działających
na serwerach.
15. Audioscrobbler Web Services API
http://www.audioscrobbler.net/data/webservices
Last.fm do zapisywania w naszym komputerze
tytułów muzyki, której słuchamy, korzysta
z wtyczki Audioscrobbler. Posługuje się danymi
do rekomendowania nowych wykonawców
i utworów na podstawie tego, co słuchają ludzie
o podobnych preferencjach muzycznych.
Audioscrobbler Web Services API udostępnia
zestaw kanałów w różnych formatach. Większość
to XML, kilka tekstowych i kilka RSS.
Kanały podzielono na kategorie – od informacji
na temat wykonawców do znaczników,
jak też statystyk forum. Ponieważ są one dostarczane
jako kanały XML z dedykowanego
sieciowym usługom serwera Audioscrobbler,
możemy użyć przekształceń XSL do osadzenia
w layoucie strony najpopularniejszych utworów,
najczęściej słuchanych wykonawców lub
popularnych znaczników.
14. Upcoming
http://upcoming.yahoo.com/services/api
Pierwszych pięć wpisów ze stajni Yahoo umożliwia
pobranie danych z poświęconego wydarzeniom
i happeningom serwisu Upcoming.org
i dołączenia ich do naszej strony, widgetu lub
wtyczki. Podobnie jak wiele wymienionych tu
API, także to wymaga autentykacji. Innymi słowy,
w celu uzyskania klucza, musimy założyć
konto, co umożliwi nam korzystanie z wymienionych
metod. Następnie trzeba wysłać ten
klucz w skrypcie lub URL-u, jaki utworzymy. API
daje nam szeroki dostęp do zawartości Upcoming,
z blisko 40 metodami zwrotu danych XML
w odpowiedzi na HTTP GET czy POST.
13. Digg
http://apidoc.digg.com
Digg, serwis, w którym użytkownicy zamieszczają
aktualności, przygotował obszerne,
złożone API, które odpowiada na zapytania
HTTP GET czy POST poprzez zwracanie
danych w określonych formatach. API oferuje
formaty danych XML, JSON oraz skrypty
w JavaScirpt lub PHP. Możemy określić rodzaj
odpowiedzi poprzez dodanie go do żądania
GET za pomocą argumentu \”type\” w naszym
URL-u. Dokumentacja API Digga wyznacza tuziny
punktów końcowych lub lokacji danych;
możemy uzyskać dostęp do poszczególnych
artykułów, komentarzy lub danych z poszczególnych
działań użytkowników. Dla osób korzystających
z Flasha przygotowano zestaw
narzędzi dostępny pod adresem http://apidoc.digg.com/Toolkits.
12. Yahoo Mail
http://developer.yahoo.com/mail
Yahoo Mail, potwierdzony przez wiele źródeł
jako największy dostawca usług e-mailowych
online, jest pierwszym API w zestawie, który
udostępnia prawdziwe sieciowe aplikacje. Podczas
gdy pierwszych osiem przedstawionych
API dostarcza metody pozwalające na dowolne
użycie i obróbkę danych, Yahoo Mail API
oferuje w pełni programowalny interfejs popularnego
serwisu. Owa kompleksowość znalazła
odzwierciedlenie w protokołach, które API
wykorzystuje do komunikacji: SOAP i JSON-
-RPC. Załączona dokumentacja jest wystarczająco
obszerna, opisująca metody i typy danych
określone w językach skryptowych.
11. Blogger
http://code.google.com/apis/blogger
Prosty interfejs Bloggera, serwisu, który zapoczątkował
fenomen dziennikarstwa online,
jest ponadczasowy. Brakuje mu może potencjału
publikacyjnego WordPressa czy ducha społecznościowego
LiveJournala, ale nadrabia to
przejrzystymi zestawami narzędzi oraz bezpłatnym
hostingiem pozbawionym reklam. Blogger
Data API jest podzbiorem usług GData Google\’a.
Rezultaty zwraca w formacie RSS w odpowiedzi
na żądanie HTTP GET. Używamy go
do przeglądania listingów blogów, postów na
blogach lub zarządzania komentarzami.
10. Delicious
http://del.icio.us/help/api
Delicious, narzędzie online do zapisywania zakładek,
łączy w sobie funkcje wyszukiwania
i opisywania znacznikami, przez co łatwiej odnaleźć
nasze zakładki. API oparte na REST korzysta
z kilku funkcji.
Choć nie jest tak dobrze
udokumentowane jak inne API, Delicious jest
na tyle proste, że rezultaty możemy zobaczyć
poprzez wpisanie w przeglądarce URL-a, korzystając
z naszego logina Delicious. Przykładowo,
aby zobaczyć listę wszystkich zakładek,
korzystamy z następującego URL-a: http://del.icio.us/api/posts/all. Odpowiedź jest zwracana
w XML-u i może być przetwarzana tak,
jak sobie tego życzymy. Możemy także wpi-sywać dane w Delicious – zmieniać znaczniki
lub dodawać zakładki. I znowu, żądanie możemy
wpisać bezpośrednio w przeglądarce.
A oto składnia umożliwiająca dodawanie zakładek:
http://del.icio.us/api/posts/add?description=NASZ_OPIS&url=URL.
9. Google AdWords/AdSense
http://www.google.com/apis/adwords
http://code.google.com/apis/adsense/
Pod numerem dziewiątym znalazły się dwa
API: AdWords i AdSense. AdWordsa wyposażono
w interfejs Soap, wspierający wszystkie
najpopularniejsze języki stosowane po stronie
serwerów. API AdSense jest pod tym względem
podobne, toteż mogą pracować obok siebie.
Jaka jest różnica między nimi? AdWords
umieszcza reklamy na stronach z wynikami wyszukiwania,
które są powiązane z prowadzonym
przez nas biznesem, podczas gdy AdSense
umieszcza kontekstowe reklamy na stronach.
AdWords może generować pomysły na słowa
kluczowe oparte na tym, co wprowadziliśmy;
AdSense zbiera słowa kluczowe z naszej treści,
co może być użyte do optymalizacji naszej
strony i efektywniejszej sprzedaży naszych
produktów. AdSense jest bezpłatny we wdrożeniu,
AdWords bazuje na opłatach.
8. Yahoo Search
http://developer.yahoo.com/search
Jeśli większość ludzi obstawiałaby, które API
związane z wyszukiwaniem jest najpopularniejsze,
zgadujemy, że wygrałoby Google. W rzeczywistości
zajmuje bliską drugą pozycję, tuż
za Yahoo Search Web Services, zestawem API
opartych na REST, za pomocą których w prosty
sposób możemy utworzyć zapytanie na bazie
prostego HTML-a lub jakiegokolwiek języka
skryptowego. Wyniki są zwracane w postaci
danych XML.
Za pomocą API możemy przeprowadzić
wyszukiwanie kontekstowe, pokrewne
pisowni, lub ogólne wyszukiwanie w internecie.
Możemy wykorzystać je do zbudowania
prostego narzędzia sprawdzającego ortografię
czy też widgetu do wyszukiwania, który zamieścimy
na stronie. W rozpoczęciu korzystania
z API pomoże SDK for Yahoo Search, zawierający
fragmenty kodu w tuzinie różnych języków,
włączając w to przykłady w JavaScripcie, które
od razu można użyć na statycznych stronach
WWW. Jednak zanim rozpoczniemy, upewnijmy
się, że zajrzeliśmy do centrum dla programistów
i pobraliśmy nasze ApplicationID.
7. Google Gears
http://gears.google.com
Google Gears obecnie jest wiodącym pakietem
udostępniającym offline funkcjonalności sieciowych
aplikacji. Choć sama aplikacja nie jest
API (to rozszerzenie przeglądarki), dostajemy
je wraz z javascriptowymi API, umożliwiającymi
kontrolę lokalnych zasobów. Wśród nich znalazły się LocalServer – API, które przejmuje
odwołania URL-i z naszej przeglądarki i pliki
serwera z naszego komputera, Database, służące
do przechowywania danych dostępnych
za pomocą SQL oraz WorkerPool, uruchamiające
procesy aplikacji. Google twierdzi, że Gears
nie jest jeszcze w pełni gotowe, jednak na
stronie Gears zamieszczono pełną dokumentację,
tutoriale oraz aktywne forum.
6. Windows Live Messenger API
http://dev.live.com
Portal po wewnętrznej przeróbce wyposażono
we własny zestaw usług sieciowych. Wybraliśmy
z niego pojedyncze API w innych pakietach,
choć Windows Live SDK oznaczono jako
zunifikowaną grupę narzędzi. Obecnie to zestawienie
różnych API, które komunikują się z różnymi
usługami Live i MSN. Wśród ulubionych
znalazły się Windows Live Messenger Activity
API oraz SDK, umożliwiające tworzenie treści
dla komunikatora Microsoftu.
Aplikacje działające w Messengerze korzystają z silnika Internet
Explorera, w istocie są więc bardzo podobne
do stron WWW. Jest także Windows Live Messenger
Add-In – API służące do opracowywania
aplikacji, które łatwo można dołączyć do
Messengera. Dodatki muszą być kompatybilne
ze szkieletem .NET 2.0, przy czym zalecane jest
użycie Visual Studio .NET 2005. Visual Studio
Express można pobrać ze strony: http://msdn.microsoft.com/vstudio/express.
5. Amazon E-Commerce API
http://aws.amazon.com
W pierwszej piątce API mamy prawdziwe sieciowe
hity. Pierwszy to E-Commerce Service
(ECS) Amazona, kolekcja, którą Amazon opisuje
jako \”Najlepszy sposób na zarabianie pieniędzy
w internecie\”. ECS daje nam dostęp do
Amazona, dzięki czemu możemy budować interfejs
sklepu na naszej stronie z użyciem najnowocześniejszych
języków komputerowych.
Amazon jest świadom kwestii bezpieczeństwa,
toteż konieczne jest utworzenie konta
dedykowanego sieciowej usłudze (http://aws.amazon.com/associates), gdzie zostanie nam
przypisany unikatowy klucz dostępowy. Aby
zarabiać pieniądze, będziemy też potrzebować
specjalnego konta (http://www.amazon.com/associates) lub sprzedawać towary za pośrednictwem
Amazona.
Amazon wspiera baza programistów licząca
ponad 100 tys. osób, którzy łączą się z Amazonem
za pomocą SOAP-a (lub REST-a), korzystając
z Javy, .NET-a, PERL-a i PHP. Za pomocą dokumentacji
ECS zapoznamy się z całą strukturą
E-Commerce Services Amazona, zanim zajmiemy
się szczegółami dotyczącymi programistycznych
narzędzi i zadań. Oprócz samych możliwości
ECS, API trafiło do pierwszej piątki dzięki
dokumentacji opracowanej z myślą o programistach
z różnym doświadczeniem, zestawu kodów
interfejsów i bibliotek, a także wsparcia
społeczności udzielanego na forum.
4. eBay
http://developer.ebay.com
eBay oferuje znacznie więcej dla sprzedawców.
Amazon zapewnia detalistom narzędzia do
sporządzania zestawień towarów, jednak eBay
jest bardziej otwartą platformą, ma najlepsze
wsparcie, jest też najbardziej wszechstronnym
i kompleksowym API. Po zarejestrowaniu
będziemy w stanie generować zestaw kluczy
uwierzytelniających dla sandboksa API lub
dla handlu. Najlepiej rozpocząć w sandboksie,
w celu budowy i przeprowadzenia testów przykładowej
aplikacji.
Dokumentację eBay\’a podzielono według
języków, z prawie wszystkimi możliwymi wariacjami
sieciowego skryptu (łącznie z Flashem
i Ajaksem). Jeśli chcemy szybko zacząć, możemy
skorzystać z widgetów API – bloków
kodu, które wykonują specyficzne funkcje –
zawarte są one w zestawach SDK. To także
dobry sposób na nauczenie się API eBay\’a
w krótkim czasie.
3. YouTube
http://www.youtube.com/dev
Na trzecim miejscu znalazło się YouTube – krok
do tyłu pod względem kompleksowości, ale
krok do przodu, jeśli chodzi o popularność. Cieszący
się złą sławą API serwisu oferuje jedynie
garść funkcji, które zwracają dane w XML-u
w odpowiedzi na odwołania REST lub XML-
-RPC. Tak więc budowanie zapytań za pomocą
formularzy HTML jest możliwe, jednak konieczne
jest użycie skryptowej metody przetwarzania
zwracanego XML-a.
Funkcje wideo zwracają dane w postaci
URL-i, a nawet lokacji miniatur. Przykładowo,
żądanie REST wymaga formuły: http://www.youtube.com/api2_rest?method=youtube-,videos.list_popular&dev_id=your&time_range=week, która zwróci listę wszystkich
najpopularniejszych filmów na YouTube w tym tygodniu. API ma o wiele mniejszy podzbiór
funkcji, które ściągają dane z profili użytkownika,
włączając w to nasze ulubione i listy
przyjaciół.
To, co robimy z danymi, może posłużyć
do utworzenia wspaniałej aplikacji. Przykładowo,
Coverpops (http://www.coverpop.com/pop/youtube) pobiera miniatury z popularnych
filmów i układa z nich klikalne, przyciągające
wzrok kolaże. Istnieje też wiele mashupów
łączących dane z Google Maps i YouTube,
z najbardziej znanym z nich Virtual Video
Map ({link}http://www.virtualvideomap.com). Jeśli
chcemy skorzystać z API, musimy założyć
bezpłatne konto programisty.
2. Flickr API
http://www.flickr.com/services/api
Flickr, którego właścicielem jest Yahoo, serwis
służący do przechowywania i pokazywania
zdjęć, rozpoczął trend Web 2.0 dla trudno
wymawialnych domen, zajmując zaszczytne
drugie miejsce. Jest to proste API, bazujące
na mechanizmie odwołania i odpowiedzi,
jednak z rozbudowanym wsparciem dla wybranego
przez nas języka. Komunikujmy się
za pomocą REST, XML-RPC lub SOAP, a dane
otrzymujemy w XML-u, JSON oraz gotowym
do użycia PHP.
Dostępne funkcje umożliwiają dostęp do
prawie całej zawartości i usług Flickra, włączając
w to, co oczywiste, kompozycje zdjęć.
Dane wędrują w obydwie strony, z funkcjami
umożliwiającymi dodawanie i tworzenie nowych
kompozycji, edycję komentarzy i zmianę
opisów zdjęć, jak też ściągają istniejące
już dane z serwisu.
Jedną z mocnych stron tego API jest duża
liczba narzędzi programistycznych i bibliotek,
które zostały dodane. Oficjalna strona programisty
wymienia biblioteki przeznaczone dla
tak różnych języków jak ActionScrip i Delphi,
jednak znajdziemy tu także PHP i .NET. Na
Flickr Bits (http://www.flickrbits.com) możemy
pobrać pojedyncze narzędzia ułatwiające
programowanie. Obejmują one PHPFlickr – klasę PHP,
usprawniającą przetwarzanie XML.
1. Google Maps
http://www.google.com/apis/maps
API Google\’a poświęcony mapom to najczęściej
wykorzystywany i nadużywany
fragment kodu w internecie. Skorzystano
z niego do utworzenia aplikacji randkowych
w połączeniu z Hot or Not (http://www.beammeuphottie.com), wyszukiwania
lokalnych aukcji za pomocą BidNearBy
(http://www.bidnearby.com) oraz przelotów
nad znajomymi krajobrazami w bitmapowym
dwupłatowcu z Google Maps
Flight Simulator. Prawdziwą niespodzianką
dla programistów, którzy nie korzystali
z API Google Maps, jest zakres kontroli
oferowany w tym prostym pakiecie.
Podczas gdy większość API jest serwerami danych,
API Google Maps umożliwia kontrolę
nad samą kopią aplikacji za pomocą Java-
Scriptu. API zawiera kolekcję specjalnych
klas, typów i funkcji służących do dostępu
do atrybutów mapy. Korzystanie z nich
jest proste. Pobieramy klucz API ze strony
http://www.google.com/apis/maps/
signup.html. W skrypcie zaczniemy
od odwołania do API
i wprowadzenia naszego klucza
Google Maps w JavaScripcie
w nagłówku HTML strony:
Następnie dodajemy aplikację do elementów naszej strony, korzystając z getElementByID:
Wreszcie musimy odwołać się do funkcji, którą utworzyliśmy, a następnie zdefiniować docelowy element w HTML-u:
Kluczowym elementem jest GLatLng.
Określa on położenie mapy za pomocą długości
i szerokości. W tym przykładzie pokazano
kwaterę główną Google. W ostatnim
czasie Google dodało do API Mapplets,
przez co programiści otrzymali sposób
na rozszerzenie funkcjonalności serwisu
Google Maps.
Zamiast korzystać z API do
umieszczenia treści na naszej stronie, Mapplets
umieszczają treść na Google. Aby odwołać
się do Google Maps, zamieszczamy
odpowiedni JavaScript w zdefiniowanym
w XML-u \”module\”, ten sam zestaw zostanie
zastosowany do aplikacji Google Maps
i Google Mapplets.