Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]co to jest API? każde źródło mówi co innego. "interfejs aplikacji" vs
Forum PHP.pl > Forum > Przedszkole
koszykarze
- "API reprezentuje interfejs aplikacji. Z punktu widzenia klas, są to metody dostarczane klientowi, który będzie używał naszej klasy."

-"Akronim API oznacza Application Programming
Interface (interfejs programistyczny). Jest to punkt zaczepienia udostępniany przez usługę, apli-
kację lub moduł i wykorzystywany przez inne komponenty programowe. W tym rozdziale uży-
wamy też pojęcia usługi sieciowej, czyli mechanizmu udostępniania danych poprzez protokół
HTTP . Na nasze potrzeby możemy przyjąć, że oba te pojęcia są równoznaczne." (Shafik.D.Mitchell.L.Turland.M.-Mistrz.PHP.Pisz.Nowoczesny.Kod)

-"Usługi sieciowe: poczta elektroniczna, transmisja danych, usługi terminalowe, serwisy informacyjne"



czyli
API=interfejs aplikacji=usługa sieciowa=poczta elektroniczna

nic nie rozumiem


phpion
Zapoznaj się chociażby z Allegro API:
http://allegro.pl/webapi/documentation.php/show/id,1342
a zajarzysz czym jest API.
markonix
Pierwsza definicja jest troszkę rozszerzona ale w końcu prawi to samo, że udostępniasz jakieś konkretne klasy/metody na zewnątrz za pomocą usług sieciowych (HTTP).
Zwykle rozumie się przez to API, które udostępnia usługi innym stronom czy aplikacjom ale to też może być wystawione API np. dla frontendu w ramach jednej aplikacji (jednej domeny). Mimo, że to ciągle ten sam serwer to zapytania do API też są realizowane przez HTTP.
Lion
Powiedziałbym że pierwsze dwie definicje są dobre. W pierwszej masz ograniczenie kontekstu do klasy, więc się wszystko zgadza z tymi metodami. Druga jest bardziej uniwersalna, ale też dobra. Trzeci artykuł opisuje najbardziej znane usługi sieciowe, niektóre z nich mogą być wykorzystane jako API. Twoje równanie w ogólności nie jest prawdziwe, chyba że miałbyś zamysł budowania API w oparciu o pocztę elektroniczną wtedy może to być prawda. Raczej należy patrzeć na pojęcie API jako na zbiór różnych technik udostępniania klientom swoich zasobów lub dostępu do swoich procesów/algorytmów.
emstawicki
API można nawet podciągnąć pod wykorzystywanie w celu połączenia rzeczy backendowych z frontem (z pominięciem komunikacji www-baza).
Po różnych zastosowaniach, które istnieją w Internecie można śmiało przyjąć, że API jest po prostu narzędziem, które zwraca, albo przetwarza z serializowane dane co ma zarówno odciążyć działanie metod/klas przerzucając renderowanie wyników na coś innego, ale i stwarza, że klasy są uniwersalne i można szybko poszerzyć całą aplikację o narzędzie na zupełnie inną platformę bez ingerencji w obecne klasy.
Lion
API może być także interfejsem jednokierunkowym, czyli że nic nie zwraca natomiast przyjmuje od Ciebie jakieś dane którymi chcesz je nakarmić, a leżące pod API mechanizmy już wiedzą co z tymi danymi zrobić.
kpt_lucek
Cytat(Lion @ 22.06.2016, 18:25:18 ) *
API może być także interfejsem jednokierunkowym, czyli że nic nie zwraca natomiast przyjmuje od Ciebie jakieś dane którymi chcesz je nakarmić, a leżące pod API mechanizmy już wiedzą co z tymi danymi zrobić.

Zawsze zwraca smile.gif

Response code 200 mówi dość dużo, nawet jeżeli body jest puste tongue.gif
com
kpt_lucek tylko nie zawsze musi być to 200, ale to prawda odp musi jakaś być.
Lion
Pisałem o API ogólnie, nie o protokole HTTP lub nawet TCP/IP jako warstwie transportowej dla API.
koszykarze
skoro temat ciągle żyje to zapytam bo nie daje mi spokoju.

już bym zrozumiał o co chodzi z API: webApi Allegro, api.stackoverflow, ma to sens. SOAP, REST. Rozumiem.

Ale jak do powyższego ma się ten http://api.symfony.com/3.0/index.html, przecież to jakby lista metod frameworka. Co to ma wspólnego z SOAP czy REST, wysyłaniem żądań HTTP?




(ps a znany jest Wam jakiś polski portal udostępniający w REST, bo allegro ma SOAP chyba)
Lion
No więc to też jest API jakie framework Symfony daje klientowi (programiście). Możesz wywołać sobie metodę z interfejsu dostarczonych klas a one zwrócą Ci jakieś dane lub wykonają jakiś proces. Czyli delegujesz wykonanie jakiejś pracy do zewnętrznych zasobów poprzez ich interfejs - API, nie musisz sam się tym przejmować.
Comandeer
Ktoś kiedyś mi powiedział takie bardzo obrazowe porównanie.

Wyobraźmy sobie, że tworzenie oprogramowania to zabawa na placu zabaw. My jesteśmy rodzicem, a nasza aplikacja – dzieckiem, które przyprowadzamy na plac zabaw, by się pobawiło. Na tym placu są też inne dzieci-aplikacje. Te, które nie udostępniają API, siedzą samotnie, z dala od innych i nawet nie patrzą w ich stronę. Są niesamowicie samolubne. Natomiast te, które mają API, wyciągają rączki (czyli API wink.gif) w kierunku innych aplikacji. I z takimi aplikacjami, za rączki, nasza aplikacja będzie się bawić.

Może i do bólu uproszczone spojrzenie, ale powinno choć ciut przybliżyć, czym jest API wink.gif
com
Nawiązując do pierwszego tematu, to api dlatego ma ta rożne definicje, bo można je zastosować do realizacji rożnych celów, ale to nadal jest ten sam interfejs, który umożliwia integrację Ciebie jako klienta, z daną usługą, czy to będzie REST,SOAP, czy cokolwiek innego.
LowiczakPL
Cytat(Comandeer @ 22.06.2016, 22:39:40 ) *
Ktoś kiedyś mi powiedział takie bardzo obrazowe porównanie.

Wyobraźmy sobie, że tworzenie oprogramowania to zabawa na placu zabaw. My jesteśmy rodzicem, a nasza aplikacja ? dzieckiem, które przyprowadzamy na plac zabaw, by się pobawiło. Na tym placu są też inne dzieci-aplikacje. Te, które nie udostępniają API, siedzą samotnie, z dala od innych i nawet nie patrzą w ich stronę. Są niesamowicie samolubne. Natomiast te, które mają API, wyciągają rączki (czyli API wink.gif) w kierunku innych aplikacji. I z takimi aplikacjami, za rączki, nasza aplikacja będzie się bawić.

Może i do bólu uproszczone spojrzenie, ale powinno choć ciut przybliżyć, czym jest API wink.gif



Tu się nie zgodzę, ktoś wprowadził Cię w błąd wink.gif

To rodzic posiada API i je udostępnia swoim dzieciom (nie odwrotnie) i tylko dzieci, które znają jego API potrafią się z danym rodzicem porozumieć.

Czyli za pomocą komend API dziecko może:
1. wyciągnąć od rodzica prośbę o pobujanie na bujawce,
2. poprosić o pohuśtanie na huśtawce,
3. poprosić o wsadzenie na czubek zjeżdżalni,
4. wytrzeć noska bo katarek leci,
5. picie bo jest spragnione.

PS. Nieraz Matka daje Ojcu zdjęcie aby ten nie reagował na inne dzieci znające jego język,

czyli

1. dziecko prosi o cukierka, buziaka, podtarcie noska
2. ojciec wyciąga fotkę z kieszenie i porównuje
3. jak dziecko na zdjęciu nie jest to samo, które prosi to wysyła je w kosmos
4. jak jest identyczne z jego zdjęciem dzidzia dostaje to o co prosi


Cytat(koszykarze @ 22.06.2016, 10:34:29 ) *
... czyli
API=interfejs aplikacji=usługa sieciowa=poczta elektroniczna

nic nie rozumiem


API pozwala osobom z zewnątrz wykorzystać bogactwo aplikacji, dlatego aplikacje, które mają coś więcej do zaoferowania, chcą zautomatyzować pewne procesy, udostępniają API.

Standardowe zachowanie VS API

Robisz imprezę i zapraszasz ludzi do klubu.

1. Bramkarz przed pubem posiada listę gości
goście się schodzą i identyfikują na podstawie dowodu, po poprawnej identyfikacji bramkarz otwiera drzwi, (to jedynie skrót tego co dzieje się przed pubem).

2. Dajesz gościom APKĘ, i stojąc przed drzwiami pubu APKA otwiera Ci drzwi, jednak wcześniej poinformowała ludzi w pubie że już jesteś.

Wersja 2 jest na MAXA prosta od strony użytkownika, po prostu dzieje się wszystko z automaty to jest przykład Aplikacji z API Klucz, potrafi umilić życie.
Ale w tle APKI jest dym na maxa, tam działa dopiero API aż się gotuje, w skrócie w tle aplikacja łączyła się z serwerem i sprawdzała czy Ty to Ty.
Po poprawnej autoryzacji serwer wysłał informację zwrotną do APKI klucz żeby drzwi się otworzyły, wysłał również informacje do wszystkich w pubie że jesteś przed drzwiami.

Działała tu usługa sieciowa połączenia z serwerem, transmisja danych czyli 2 kierunkowa komunikacja prośba o identyfikację i zwrotna informacja z kluczem, oraz łączenie się telefonu z terminalem zamka drzwi za pomocą API zamka, które jest udostępniane przez jego producenta.
Usługi terminalowe czyli nasze bezprzewodowe otwieranie drzwi telefonem na podstawie kodu.
Serwisy informacyjne czyli informacja gości w Pubie że jesteś przed drzwiami. (tu na maxa spłyciłem temat)

Jedna aplikacja może wykorzystywać nieograniczoną ilość API.
Comandeer
Cytat
Tu się nie zgodzę, ktoś wprowadził Cię w błąd

Raczej nie smile.gif
Cytat
To rodzic posiada API i je udostępnia swoim dzieciom (nie odwrotnie) i tylko dzieci, które znają jego API potrafią się z danym rodzicem porozumieć.

Oczywiście, że to programista (rodzic) uczy aplikacje, jak posługiwać się API. Ale API nie jest w programiście, tylko jest w aplikacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.