• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Po co mi API ?

Object Storage Arubacloud
0 głosów
315 wizyt
pytanie zadane 15 maja 2020 w Inne języki przez viGor Użytkownik (740 p.)
Cześć, tak jak w temacie - Po co mi API?
Jestem totalnym laikiem back endu... No dobra Front-Endu też :P Zrobiłem kilka stron treningowo, na których przykładzie chciałem się nauczyć tworzenia ładnej i schludnej strony, znam też trochę pythona, jednak to tyle jak chodzi programowanie - Do stworzenia w pełni funkcjonalnej apki mi bardzo daleko, dlatego chciałbym spytać, co to jest API, do czego służy, czy jest niezbędne, i wszystko co potrzeba mi o tym wiedzieć na początek. Nie musicie odpowiadać jakimś super technicznym językiem, bylebyście mieli w intencji rozjaśnienie idei używania API, gdyż tak jak wspomniałem oprócz przeczytania definicji, to nie mam o tym bladego pojęcia. Dzięki !
komentarz 15 maja 2020 przez ScriptyChris Mędrzec (190,190 p.)

2 odpowiedzi

+1 głos
odpowiedź 15 maja 2020 przez marcin99b Szeryf (82,080 p.)
wybrane 17 maja 2020 przez viGor
 
Najlepsza

Odchodząc od tematu frontend/backend, tylko skupiając sie na tym co to w ogóle jest "API" 

Application Programming Interface => to takie coś, za pomocą aplikacje mogą się między sobą komunikować w prosty sposób, bez udziwnień 
Przykładowo API do komunikacji między komputerem a drukarką/skanerem, żeby te urządzenia mogły wysyłać między sobą informacje
Albo API do komunikacji z kartą graficzną, żeby można było wykonywać na niej obliczenia 

API webowe to po prostu takie API, za pomocą którego w prosty sposób aplikacje mogą się komunikować ze sobą po sieci
Przyjęło sie że robi sie to na porcie http/https, wysyła sie zapytania http z zawartością jako json (lub rzadziej - xml)
Ale można pod to podciągnąć nawet wysyłanie suchych kawałków tekstu dowolnym innym portem 
Np czasami komunikacja z drukarkami po sieci to wysyłanie suchych instrukcji po TCP, niektóre mają obsługe xml/json 

A po co API w komunikacji backend/frontend?
Przeglądarka domyślnie jest odbiorcą api, z którego dane ci wyświetla
Ma wbudowaną obsługe kilku formatów, np html, css, js, xml i chyba json ale nie jestem pewny 
(xml -> domyślne formatowanie)

Przykładowo jeśli odbierze html to go wyświetli, jeśli html ma jakieś linki to je pobierze
Jak css to go użyje
Jak js to go wykona bo ma wbudowany interpreter 

Pobierając html z serwera nie robisz nic innego, jak łączenie sie za pomocą przeglądarki z API, które zwraca html i kilka innych formatów

Ale tutaj pojawiają sie pewne ograniczenia
Bo nie zawsze chcesz pobierać całego html, czasami chciałbyś pobierać tylko małe kawałki na których byś operował w js (np poszczególne posty, zdjęcia, np chciałbyś doładowywać posty podczas przewijania strony, zamiast pobierania wszystkiego na raz lub bawienia sie w paginacje)

Stąd często pod innymi adresami (endpointami) dorzuca sie możliwość pobierania/wysyłania danych jako jsony -> bo prościej je obsłużyć za pomocą kodu, np js 
Tu działa to tak samo jak przy wspomnianej obsłudze API karty graficznej albo drukarki
Jakiś kod pod spodem chciałby sie komunikować z jakimś urządzeniem (w tym przypadku z serwerem, który ma jakieś funkcjonalności)
Ale w sposób który jest prosty do obsłużenia z poziomu kodu 

Wyobrażasz sobie jak musiałby wyglądać sposób komunikacji z drukarką, gdyby jej bezpośrednia obsługa była zrobiona tak, żeby była przyjazna dla użytkownika?
Jest to praktycznie niemożliwe do zrobienia
Dlatego robi sie programy, które przerabiają informacje które im podajesz (które zdjęcie, jaki format, jakie kolory, jaka jakość) na paczki danych, które za pomocą API wysyłają w przyjazny sposób z poziomu kodu
Który jest prosty do obsługi zarówno dla komputera i programu, który działa wewnątrz drukarki 

Nie mówiąc już o API karty graficznej... gdyby tam miał być sposób komunikacji przyjazny dla człowieka a nie dla programu, to nie byłoby sensu używania kart graficznych

komentarz 15 maja 2020 przez marcin99b Szeryf (82,080 p.)
Tak tylko dodam że API może być nie tylko między fizycznymi urządzeniami które komunikują sie siecią/magistralą/kablem

Może być też między programem a kawałkiem systemu
Przykładowo jest takie coś jak WinAPI => API do wyświetlania rzeczy w windowsie
Każda biblioteka/technologia która chce coś wyświetlać na windowsie (np aplikacje desktopowe) pod spodem musi mieć implementacje obsługi WinAPI

Tak samo jak w frontendzie masz obsługe elementów DOM -> to też jest obsługa pewnego rodzaju API
Albo jak masz komunikacje js z przeglądarką, gdzie masz dostęp do tych wszystkich local storage, do konsoli itp -> to też jest pewnego rodzaju API
komentarz 15 maja 2020 przez viGor Użytkownik (740 p.)
Dziękuję za wczerpującą odpowiedź :)
komentarz 15 maja 2020 przez marcin99b Szeryf (82,080 p.)
Polecam przejrzeć różne strony z otwartym podglądem ruchu po sieci

jak masz chrome to prawy -> zbadaj -> zakładka network
na start wycisz, a później poprzeglądaj strone
zobaczysz że np automatyczne doładowywanie postów to pobieranie ich jako json, żeby później dorzucić je do html po odpowiednim wyciągnięciu danych

to samo sie dzieje jak wciśniesz jakiś przycisk, który nie odświeża ci strony
np dodawanie komentarzy na niektórych stronach

masz tam też dokładne informacje o tym co zostało wysłane, z jakimi nagłówkami i na jaki adres
przez co w prosty sposób można zrobić bota, który by symulował ruch uzytkownika
albo aplikacje, która korzystałaby z tego samego api

np w pełni natywną aplikacje mobilną, która by obsługiwała api dla jakiejś strony, która nie ma swojej w pełni natywnej aplikacji mobilnej
+1 głos
odpowiedź 15 maja 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
API to jeden z popularniejszych sposobów na komunikacje klient-serwer.

To czy wykorzystywać API czy nie zależy od tego co tak na prawdę tworzysz.

Jeśli tworzysz stronę ze swoim CV lub jakaś inną stronę reklamową dla np prostej księgowej, to raczej nie będziesz potrzebować API. Jest to spowodowane tym, że strona będzie statyczna i nie będziesz ładować tam jakiś nowych danych co np godzinę.

Jeśli natomiast tworzysz jakiś stronę bardziej zaawansowaną np stronę z kalkulatorem walut, to raczej już warto z API korzystać. Wtedy dzięki api możesz pobrać z jakiegoś innego serwisu kursy konkretnych walut. To że pobierzesz te dane odnośnie walut zaowocuje tym, że na Twojej stronie będziesz widział ile jest warty dolar i euro i będziesz mógł dokonać obliczeń. Jeśli nie miałbyś API, musiałbyś codziennie wchodzić na stronę z kursami walut, spisywać wszystkie notowania a następnie wprowadzać je do swojej aplikacji. Jeśli zapomniałbyś któregoś dnia tego zrobić, ktoś kto korzystałby z twojego kalkulatora dostałby stare dane (np kurs sprzed 2 dni). Już ma to sens?

 

Teraz przyjmijmy, że robisz stronę internetowa na której wyświetlasz dużo więcej danych, np pogodę, kursy walut oraz najbliższe mecze piłkarskie. Warto codziennie (lub nawet częsciej) wchodzić na stronę i ją ręcznie aktualizować? Zamiast tego możesz odwołać się do 3. serwisów i pobrać dane od nich.

Daj znać jak nie będziesz widział sensu dalej :)
komentarz 15 maja 2020 przez viGor Użytkownik (740 p.)
Tak teraz nabrało to sensu. A jakie są sposoby tworzenia strony z możliwością tworzenia konta/logowania się, do tego mi potrzebne API? I gdy chcę stworzyć stronę, która zapisuję jakieś dane, to właśnie za pomocą API "zapakuje" je do bazy danych ?
komentarz 15 maja 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
tak do tego potrzebujesz API

Podobne pytania

0 głosów
1 odpowiedź 516 wizyt
pytanie zadane 10 marca 2023 w Inne języki przez kubekszklany Gaduła (3,190 p.)
0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 12 grudnia 2022 w Inne języki przez Marek2000 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 101 wizyt
pytanie zadane 19 grudnia 2021 w Inne języki przez Leon233 Nowicjusz (120 p.)

92,555 zapytań

141,402 odpowiedzi

319,541 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...