API - wprowadzenie
API =Application Programming Interface
Jest to specyfikacja sposobu w jaki mogą być wymieniane dane między programami. Na przykład serwis internetowy może udostępniać API poprzez który inne serwisy mogą sięgać do danych, bez wyświetlania ich na stronie źródłowej.
Specyfikacja API wraz z przykładami i innymi materiałami przydatnymi programistom jest często udostępniana w postaci SDK:Software Development Kit.
Projekt API
Co wybrać? Gdy chcemy jedynie pobierać dane (na przykład poprzez Ajax). Wystarczy model pytanie – odpowiedź. Gdy użytkownik ma poprzez API działać na bazie danych – potrzebujemy REST lub usług sieciowych. Usługi sieciowe są niezbędne wówczas, gdykomunikacja ma bardziej złożony charakter. Stosowane są na przykład przy wysyłaniu deklaracji podatkowych.
Model pytanie – odpowiedź można traktować jako uproszczony REST, gdy chcemy jedynie pobierać dane. Stosując metodę GET podajemy parametry po prostu w adresie URL, łącząc je znakiem &. Na przykład:http://example.com/api?parametr1=wartosc1¶metr2=2
Model ten może także służyć do realizacji bardziej złożonych usług sieciowych, stanowiąc alternatywę dla bardziej złożonego SOPA. Przykładem może być usługa płatności PayU:http://developers.payu.com/pl/restapi.html
Zobacz też:
http://www.moseleians.co.uk/wp-content/uploads/cmdm/9632/1422444257_api-restowe-whitepaper.pdf
http://www.yiiframework.com/wiki/175/how-to-create-a-rest-api/
API - przykłady
Dla naszego przykładowego projektu (biblioteczki) można wykorzystać niektóre z dostępnych w sieci zasobów, dla których są dostępne odpowiednie API. Poniższy spis obrazuje też bogactwo zasobów, jakie można obecnie znaleźć w internecie:
Google Books:
http://www.programmableweb.com/news/53-books-apis-google-books-goodreads-and-sharedbook/2012/03/13
biblioteka:https://github.com/hubgit/libapi
Howto:
http://www.yiiframework.com/extension/ehttpclient/
http://www.yiiframework.com/wiki/697/make-an-ajax-request-to-another-server-using-jsonp/
OCLC:
https://pl.wikipedia.org/wiki/Online_Computer_Library_Center
https://www.oclc.org/developer/home.en.html
Wikipedia:
https://www.mediawiki.org/wiki/API:Main_page
https://github.com/thewulf7/Yii2-Wikipedia
LibraryThing
http://www.librarything.com/api
Opensearch: http://www.opensearch.org/Home