b"\n_START_ARTICLE_\nWebAPI\n_START_PARAGRAPH_\nWebAPI (z ang. Web Application Programming Interfaces, pol. API webowe, API internetowe lub interfejsy webowe) \xe2\x80\x93 rodzaj sieciowego interfejsu programowania aplikacji (ang. network-based API), w kt\xc3\xb3rym wykorzystuje si\xc4\x99 architektur\xc4\x99 i protoko\xc5\x82y sieci Web (w szczeg\xc3\xb3lno\xc5\x9bci protok\xc3\xb3\xc5\x82 HTTP) do komunikacji mi\xc4\x99dzy aplikacjami znajduj\xc4\x85cymi si\xc4\x99 na oddzielnych urz\xc4\x85dzeniach w sieci. _NEWLINE_API webowe mo\xc5\xbce przyjmowa\xc4\x87 r\xc3\xb3\xc5\xbcne formy, takie jak wywo\xc5\x82ywanie zdalnych procedur (wraz ze zwrotnym przesy\xc5\x82aniem wynik\xc3\xb3w ich pracy), transfer bie\xc5\xbc\xc4\x85cego stanu zasob\xc3\xb3w reprezentowanych w sieci i inne._NEWLINE_Cech\xc4\x85 odr\xc3\xb3\xc5\xbcniaj\xc4\x85c\xc4\x85 API webowe od tradycyjnej interakcji w sieci WWW jest to, \xc5\xbce u\xc5\xbcytkownikiem interfejs\xc3\xb3w nie jest bezpo\xc5\x9brednio korzystaj\xc4\x85cy w przegl\xc4\x85darki internetowej cz\xc5\x82owiek, a aplikacja. Zbi\xc3\xb3r us\xc5\x82ug WebAPI pozwala tworzy\xc4\x87 bardziej z\xc5\x82o\xc5\xbcone programy, w kt\xc3\xb3rych zas\xc3\xb3b zdalny (obecny na serwerze) jest dost\xc4\x99pny z podobn\xc4\x85 \xc5\x82atwo\xc5\x9bci\xc4\x85 jak zas\xc3\xb3b lokalny.\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nTechnikami kt\xc3\xb3re poprzedzi\xc5\x82y rozw\xc3\xb3j API webowych jest opracowany w roku 1988 system RPC (ang. remote procedure call) oraz zaproponowany w latach '90, system CORBA. Model RPC pozwala\xc5\x82 na wywo\xc5\x82ywanie procedur zdalnych, tak jakby to by\xc5\x82y elementy biblioteki programistycznej dost\xc4\x99pnej lokalnie. CORBA rozwin\xc4\x85\xc5\x82 RPC o takie elementy jak obiektow\xc4\x85 realizacj\xc4\x99 interfejsu programistycznego API, oraz mo\xc5\xbcliwo\xc5\x9b\xc4\x87 \xc5\x82\xc4\x85czenia system\xc3\xb3w dzia\xc5\x82aj\xc4\x85cych pod kontrol\xc4\x85 r\xc3\xb3\xc5\xbcnych system\xc3\xb3w operacyjnych i pisanych w r\xc3\xb3\xc5\xbcnych j\xc4\x99zykach (dzi\xc4\x99ki abstrakcyjnemu interfejsowi zdefiniowanemu w j\xc4\x99zyku IDL). W roku 1999 przedstawiono dwa systemy, kt\xc3\xb3re realizowa\xc5\x82y podobne funkcje, lecz z u\xc5\xbcyciem technik Webu: XML-RPC oraz protok\xc3\xb3\xc5\x82 SOAP, kt\xc3\xb3re \xe2\x80\x93 zw\xc5\x82aszcza SOAP i powi\xc4\x85zane techniki \xe2\x80\x93 rozpowszechni\xc5\x82y si\xc4\x99 pod angielsk\xc4\x85 nazw\xc4\x85 Web Services. Protoko\xc5\x82y Web Services uchodzi\xc5\x82y za dosy\xc4\x87 ci\xc4\x99\xc5\xbckie i wymagaj\xc4\x85ce w implementacji, st\xc4\x85d zaproponowano szereg podej\xc5\x9b\xc4\x87 do realizacji us\xc5\x82ug sieciowych, kt\xc3\xb3re pozwala\xc5\x82y na prost\xc4\x85 interakcj\xc4\x99 mi\xc4\x99dzy klientem a serwerem z u\xc5\xbcyciem identyfikator\xc3\xb3w URI i podstawowych funkcji protoko\xc5\x82u HTTP.  Oko\xc5\x82o roku 2000 zosta\xc5\x82 zaproponowany styl architektury oprogramowania REST, i to on jest obecnie najpopularniejszym sposobem realizacji API webowych.\n_START_SECTION_\nRealizacja techniczna\n_START_PARAGRAPH_\nW realizacji API webowych najcz\xc4\x99\xc5\x9bciej spotykanym stylem architektury oprogramowania jest REST (ang. representational state transfer), gdzie wywo\xc5\x82anie us\xc5\x82ugi interfejsu (wraz z parametrami) jest zakodowane w formie URI a wynik dzia\xc5\x82ania jest zakodowany z u\xc5\xbcyciem formatu JSON lub XML (dopuszczalne s\xc4\x85 te\xc5\xbc inne formy - w tym czysty tekst). Takie rodzaje API Webowych znane s\xc4\x85 pod nazw\xc4\x85 RESTful APIs._NEWLINE_Definicja API webowego mo\xc5\xbce by\xc4\x87 stosunkowo prosta (API, by by\xc4\x87 w pe\xc5\x82ni funkcjonalne, mo\xc5\xbce si\xc4\x99 sk\xc5\x82ada\xc4\x87 nawet z jednego typu komunikatu) i, wraz ze stosowan\xc4\x85 powszechnie bezstanowo\xc5\x9bci\xc4\x85 serwisu, pozwala na tworzenie aplikacji klienta ma\xc5\x82ym nak\xc5\x82adem pracy. Mo\xc5\xbcliwe jest np. wywo\xc5\x82anie serwisu webowego z u\xc5\xbcyciem konsolowej komendy curl a integracja z aplikacjami mo\xc5\xbce by\xc4\x87 przeprowadzona bez dodatkowych bibliotek. _NEWLINE_Istniej\xc4\x85 powody, dla kt\xc3\xb3rych u\xc5\xbcycie API powinno by\xc4\x87 bardziej z\xc5\x82o\xc5\xbcone i w wielu przypadkach mo\xc5\xbcna si\xc4\x99 spotka\xc4\x87 z API webowymi wymagaj\xc4\x85cych kilkufazowej interakcji._NEWLINE_U\xc5\xbcycie API publicznych, takich jak wspomniane wy\xc5\xbcej API Twittera, wymaga najcz\xc4\x99\xc5\x9bciej rejestracji u\xc5\xbcytkownika. Podczas rejestracji u\xc5\xbcytkownikowi przekazywany jest specjalny identyfikator (zwany kluczem), kt\xc3\xb3ry musi by\xc4\x87 u\xc5\xbcyty w trakcie korzystania z API; w przeciwnym razie serwis nie zadzia\xc5\x82a. _NEWLINE_Cze\xc5\x9b\xc4\x87 publicznych API webowych wymaga op\xc5\x82at."