API oznacza interfejs programowania aplikacji. Służy jako brama umożliwiająca aplikacjom dostęp do niektórych zasobów z innych aplikacji.
Zaletą korzystania z interfejsu API jest zapewnienie dostępu aplikacjom innych firm, aby nie miały dostępu do wszystkich danych Twojej aplikacji. Mogą uzyskiwać dostęp tylko do danych, które udostępniasz za pośrednictwem interfejsu API.
Aplikacja lub użytkownik, który chce uzyskać dostęp do danych, jest nazywany klientem, a aplikacja obsługująca dane jest nazywana serwerem.
Interfejsy API są dziś szeroko stosowane w każdej architekturze oprogramowania. Jeśli aplikujesz na stanowisko front-end, back-end, full-stack lub inżynier sieci, zostaniesz zapytany o wiele pytań dotyczących interfejsów API.
Mając to na uwadze, przyjrzyjmy się niektórym z najczęściej zadawanych pytań podczas rozmowy kwalifikacyjnej na temat interfejsów API REST.
Spis treści:
Co to jest ODPOCZYNEK?
Odpowiedź: REST to projekt architektoniczny, który definiuje pewne ograniczenia dotyczące działania interfejsów API. Interfejsy API zgodne z zasadami REST są znane jako interfejsy API RESTful. REST to skrót od Representational State Transfer.
To nie jest protokół ani standard; zamiast tego jest to architektura, której można użyć do implementacji interfejsów API na różne sposoby.
Zapewnia dużą elastyczność i swobodę programistom, dlatego jest szeroko stosowany do tworzenia interfejsów API. Oto niektóre zasady architektury REST:
- Separacja klienta i serwera: w RESTful API klient nie powinien wpływać na serwer w żaden inny sposób niż żądanie danych za pośrednictwem URI (Uniform Resource Identifier). W ten sam sposób serwer nie powinien w żaden sposób modyfikować zawartości klienta.
- Bezpaństwowość: Kiedy składane są dwa oddzielne wnioski, nie wiedzą o sobie nawzajem. Innymi słowy, żądania są bezstanowe i nie utrzymują stanu. Jeśli prośba zostanie spełniona, po prostu się kończy. Każda prośba jest odizolowana od innych próśb.
- Architektura warstwowa: klient lub serwer nie wie, czy żądanie jest kierowane bezpośrednio do źródła, czy do aplikacji pośredniczącej. Zależy im tylko na odpowiedzi na prośbę.
- Buforowanie: Dane lub odpowiedzi mogą być buforowane zarówno po stronie klienta, jak i serwera, aby poprawić wydajność i skalowalność. W przypadku częstych żądań dotyczących określonego zasobu odpowiedź na to żądanie może być przechowywana w pamięci podręcznej i używana w razie potrzeby.
Jakie są kluczowe cechy REST?
Odpowiedź: Kluczowe cechy lub cechy REST to:
- Elastyczność: możesz przenosić się z jednego serwera na inny i niczego to nie zmieni, ponieważ interfejs API wyśle tę samą odpowiedź na określone żądanie. Możesz także dodać dowolną liczbę punktów końcowych dla różnych typów danych.
- Skalowalność: buforowanie poprawia skalowalność dzięki zapisywaniu odpowiedzi do późniejszego wykorzystania. Zmniejsza obciążenie serwera, a także zmniejsza opóźnienia.
- Autoryzacja: Za pomocą nagłówka autoryzacji możesz określić poświadczenia, których serwer może użyć do autoryzacji żądania.
- Bezstanowość: jest to najważniejsza cecha REST, ponieważ uniemożliwia prośbom poznanie, co dzieje się z innymi żądaniami. Żądania są izolowane i kończone, gdy tylko zostaną spełnione.
Czym są zasoby w architekturze REST?
Odpowiedź: Zasoby to jednostki, na których wykonywane są różne operacje, takie jak pobieranie, aktualizowanie lub usuwanie. Są to podstawowe elementy składowe architektury REST.
Na przykład, jeśli weźmiesz pod uwagę internetowy sklep e-commerce, produkty, użytkownicy oraz metadane są uważane za zasoby, ponieważ można na nich działać. Zasoby mogą być przenoszone do innej aplikacji poprzez API.
Wymień niektóre zalety i wady interfejsu API REST.
Odpowiedź: Zalety interfejsów API REST są następujące:
- To proste do wdrożenia.
- Zasobami można łatwo zarządzać.
- Jest skalowalny dzięki architekturze klient-serwer.
- Obsługuje wiele typów nośników przesyłania danych, takich jak XML i JSON.
Jego wady to:
- Nie można utrzymać stanu między żądaniami.
- Prawdziwe źródło pochodzenia zasobu nie może być znane ze względu na architekturę warstwową.
- Nie nadaje się do złożonych zapytań lub próśb.
Zdefiniuj szablon REST.
Odpowiedź: Szablon REST to narzędzie lub klient, za pomocą którego można uzyskać dostęp do interfejsów API REST w środowisku Spring. Zasadniczo ukrywa kod wzorcowy, który być może będziesz musiał napisać, aby zażądać zasobu z interfejsu API REST.
Co to jest RESTful?
Odpowiedź: Interfejsy API lub usługi RESTful to interfejsy, które implementują styl architektoniczny REST (Representational State Transfer) i działają przy użyciu protokołów, takich jak HTTP.
Czym są usługi internetowe RESTful?
Odpowiedź: Usługi sieciowe RESTful zostały stworzone z myślą o jak najlepszym działaniu w sieci Web. Representational State Transfer (REST) to styl architektoniczny, który określa ograniczenia, takie jak jednolity interfejs, architektura warstwowa i bezstanowość, zastosowane w usłudze sieciowej, wywołujące pożądane właściwości, takie jak wydajność i skalowalność, które umożliwiają najlepszą pracę usług na sieć.
Jak można przetestować usługi internetowe RESTful?
Odpowiedź: Aby przetestować usługę internetową RESTful, możesz użyć klienta REST, takiego jak Postman lub Thunder Client, i wysłać zapytanie do usługi internetowej, którą chcesz przetestować. Następnie, kiedy otrzymasz odpowiedź, zrozum odpowiedź; to kluczowa część.
Jeśli chcesz przetestować złożony interfejs API z wieloma punktami końcowymi, być może będziesz musiał rozbić testy i wykonać testy jednostkowe, testy integracyjne, testy wydajności i testy kompleksowe.
Wymień niektóre funkcje usług internetowych RESTful.
Odpowiedź: Niektóre z kluczowych funkcji usług internetowych RESTful to:
- Obsługa wielu typów mediów, takich jak JSON i XML.
- Skalowalność
- Izolacja klienta i serwera
- Elastyczność
Zdefiniuj główne klasy zasobów RESTful.
Odpowiedź: Klasy zasobów głównych to „zwykłe stare obiekty Java” (POJO), które są albo opatrzone adnotacją @Path albo przynajmniej jedną metodę opatrzoną adnotacją @Path lub oznaczeniem metody żądania, na przykład @GET, @POST, @PUT lub @USUWAĆ.
Co to jest identyfikator URI?
Odpowiedź: URI to skrót od Uniform Resource Identifier. Jest to ciąg znaków służący do lokalizowania lub identyfikowania zasobów interfejsu API lub usługi. Używa nazwy lub lokalizacji zasobu, aby go zidentyfikować, ale nie polega na konkretnej metodzie lub technice.
Czym jest bezpaństwowość w REST?
Odpowiedź: Bezstanowość odnosi się do jednego ograniczenia zastosowanego do interfejsu API, w którym dowolne dwa żądania nie mogą wiedzieć, co się ze sobą dzieje. Innymi słowy, stan żądań nie jest utrzymywany. Jeśli żądanie zostanie spełnione, po prostu kończy się po otrzymaniu odpowiedzi.
Co to jest JAX-RS?
Odpowiedź: JAX-RS to Java API, które umożliwia tworzenie aplikacji w Javie wykorzystujących architekturę REST. Ten interfejs API ułatwia tworzenie aplikacji REST w języku Java.
Jakie są kluczowe adnotacje w interfejsie API JAX-RS?
Odpowiedź: Adnotacje w JAX-RS są używane przez programistów do ozdabiania klas Java w celu zdefiniowania zasobów i metod, które mogą być wykonywane na tych zasobach. Oto niektóre kluczowe adnotacje interfejsu API JAX-RS:
- @GET: Służy do wykonywania żądań GET w HTTP.
- @POST: Służy do wysyłania żądań POST w HTTP.
- @Path: Odnosi się do względnej ścieżki klasy Java.
- @QueryParam: Odnosi się do parametrów zapytania URI lub adresu URL.
Jakie są kluczowe funkcje interfejsu API JAX-RS?
Odpowiedź: Cechy JAX-RS to:
- Buforowanie po stronie klienta
- Buforowanie po stronie serwera
- Dostosowanie ciągu zapytania
- Adnotacje w czasie wykonywania
Jak można skonfigurować aplikacje JAX-RS?
Odpowiedź: Aplikacja JAX-RS składa się z co najmniej jednej klasy zasobów spakowanej w pliku WAR. Podstawowy identyfikator URI, z którego zasoby aplikacji odpowiadają na żądania, można ustawić na dwa sposoby:
- Używanie adnotacji @ApplicationPath w podklasie javax.ws.rs.core.Application w pakiecie WAR
- Używanie znacznika servlet-mapping w deskryptorze wdrażania web.xml WAR
Czym są JAX-WS i JAX-RS?
Odpowiedź: JAX-WS to interfejs API XML Web Services używany do tworzenia interfejsów API przy użyciu protokołu SOAP (Simple Object Access Protocol) — protokołu komunikacyjnego opartego na XML.
Z drugiej strony JAX-RS to Java API służące do tworzenia serwisów internetowych z wykorzystaniem architektury REST.
Co to są kody stanu HTTP?
Odpowiedź: Kody statusu to nic innego jak sposób komunikowania klientowi statusu odpowiedzi wysłanej przez serwer. Znajdują się one w nagłówkach odpowiedzi wysyłanych przez serwer.
Klient jest w stanie dowiedzieć się, czy żądanie nie powiodło się lub zostało spełnione lub czy coś jest nie tak z odpowiedzią za pomocą kodów statusu.
Oto kilka typowych kodów stanu HTTP: –
- 200 – oznacza słowo kluczowe „OK”. Oznacza to, że prośba została spełniona, a odpowiedź jest w porządku.
- 404 – oznacza „Nie znaleziono”. Oznacza to, że zasób nie jest obecny na serwerze lub punkt końcowy nie istnieje.
- 500 — oznacza „Wewnętrzny błąd serwera”. Zwykle dzieje się tak, gdy serwer nie może wygenerować poprawnej odpowiedzi lub wystąpił błąd, który nie został jawnie zgłoszony.
- 503 – oznacza „Usługa niedostępna”. Oznacza to, że obecnie serwer nie może przetwarzać żadnych żądań, prawdopodobnie dlatego, że jest martwy lub nie działa z powodu przeciążenia żądań. Może się to również zdarzyć, gdy serwer jest gotowy do konserwacji.
Czym są metody HTTP?
Odpowiedź: Metody HTTP są używane do wykonywania określonego rodzaju akcji na określonym zasobie API. Na przykład, jeśli chcesz pobrać listę filmów z interfejsu API kolekcji filmów, możesz użyć metody GET udostępnianej przez protokół HTTP. Jeśli chcesz zaktualizować dane, możesz skorzystać z metody POST udostępnianej przez HTTP.
Często używane metody HTTP to:
- GET: Żądania korzystające z GET powinny pobierać tylko dane.
- POST: Aktualizuje zasób, wysyłając nowo zaktualizowany zasób do serwera.
- DELETE: Usuwa określony zasób.
- PATCH: Częściowo modyfikuje zasób.
Jak działa podstawowe uwierzytelnianie HTTP?
Odpowiedź: Uwierzytelnianie to proces weryfikacji autentyczności klienta w celu zachowania bezpieczeństwa danych. W HTTP uwierzytelnianie działa poprzez nagłówek autoryzacji, który jest wysyłany przez klienta.
Nagłówek autoryzacji składa się z nazwy użytkownika/identyfikatora i hasła klienta, które następnie jest weryfikowane przez serwer i przyznawany jest dostęp.
Ważną rzeczą, na którą należy zwrócić uwagę, jest to, że podczas korzystania z uwierzytelniania HTTP kanał, przez który przechodzą poświadczenia, powinien być zaszyfrowany i bezpieczny.
Możesz zabezpieczyć kanał za pomocą warstwy SSL, która jest zintegrowana z HTTPS. Dlatego zaleca się używanie protokołu HTTPS zamiast prostego HTTP w przypadku poświadczeń.
Jakie są podstawowe składniki żądania HTTP?
Odpowiedź: Żądanie HTTP składa się z następujących elementów:
- Wiersz żądania: jest to pierwszy wiersz każdego żądania i składa się z metody HTTP, ścieżki lub punktu końcowego oraz numeru wersji HTTP.
- Nagłówki: nagłówki HTTP służą do dostarczania metadanych żądania.
- Treść (opcjonalnie): ten składnik jest obecny tylko w przypadku niektórych metod żądania. Nie jest to wymagane w przypadku żądań GET, ale jest wymagane w przypadku żądań POST. To jest właściwa wiadomość żądania.
Jakie są podstawowe składniki odpowiedzi HTTP?
Odpowiedź: Odpowiedź HTTP składa się z następujących elementów:
- Status: Odnosi się do kodu statusu HTTP, który jest wysyłany przez serwer.
- Nagłówki: Podobnie jak żądania, odpowiedzi również mają swoje nagłówki, które zawierają przydatne informacje o odpowiedzi.
- Wiadomość: Są to rzeczywiste dane wysyłane przez serwer do klienta w celu zażądania określonego zasobu.
Jaka jest różnica między REST a AJAX?
Odpowiedź: AJAX to klient, za pośrednictwem którego można uzyskać dostęp do interfejsów API RESTful. Służy do wysyłania asynchronicznych żądań za pomocą JavaScript.
REST lub Representational State Transfer to architektura, którą można zaimplementować w celu tworzenia interfejsów API RESTful. W skrócie, aby wysyłać żądania HTTP, możesz użyć AJAX, który służy jako klient, ale jeśli chcesz zaimplementować API RESTful, musisz użyć architektury REST.
Jaka jest różnica między SOAP a REST?
Odpowiedź: Representational State Transfer lub REST to architektura z minimalnymi ograniczeniami tworzenia interfejsów API. SOAP, czyli Simple Object Access Protocol, to protokół o ścisłych wymaganiach dotyczących implementacji interfejsu API.
REST jest bardziej elastyczny i łatwy w użyciu niż SOAP. Komunikacja oparta na XML jest używana w SOAP, podczas gdy w REST można używać wielu typów przesyłania danych, takich jak JSON, XML itp. W porównaniu z SOAP, REST jest lżejszy i szybszy.
Usługi sieciowe SOAP mają wbudowane zabezpieczenia, co jest jedną z zalet korzystania z protokołu SOAP w porównaniu z REST, ale dodatkowe funkcje sprawiają, że korzystanie z niego jest skomplikowane i ciężkie.
Jaka jest różnica między PUT a POST?
Odpowiedź: POST to metoda żądania HTTP, która wysyła pewne dane do serwera. Jeśli wykonasz wiele żądań POST dla określonego zasobu, mogą wystąpić skutki uboczne dla twoich danych. Na przykład, jeśli chcesz dodać artykuł do kolekcji, jeśli wykonasz wiele żądań POST, do kolekcji zostanie dodanych wiele artykułów, co spowoduje powstanie zbędnych artykułów.
PUT to metoda żądania HTTP, która wysyła dane do serwera dla określonego zasobu, ale aktualizuje dane tylko raz. Jeśli wyślesz wiele żądań PUT dla danego zasobu, nie wystąpią żadne skutki uboczne, a dane zostaną dodane tylko raz. W PUT, jeśli zasób nie istnieje, utworzy nowy, a jeśli istnieje, zaktualizuje istniejący.
PUT jest idempotentny, a POST nie.
Co to jest ładunek?
Odpowiedź: Ładunek w REST API to po prostu treść żądania wysyłanego od klienta do serwera. To dane, które chcesz wysłać na serwer i uzyskać odpowiedź.
Jaki jest maksymalny rozmiar ładunku, który można wysłać metodami pocztowymi?
Odpowiedź: Nie ma domyślnego limitu ustawionego przez sam protokół HTTP. Limit może zależeć od maksymalnego limitu klienta lub serwera, w zależności od tego, który z nich jest minimalny.
Jakie są najlepsze praktyki, których należy przestrzegać podczas tworzenia identyfikatora URI?
Odpowiedź: Niektóre z kluczowych punktów, o których należy pamiętać podczas projektowania identyfikatorów URI, to:
- Unikaj używania rozszerzeń plików
- Bądź spójny ze wszystkimi identyfikatorami URI
- Podziel identyfikatory URI na domeny i subdomeny dla różnych zestawów zasobów
- Do oddzielania słów w zdaniach osadzonych w identyfikatorach URI należy używać myślnika lub podkreślenia
- Powinieneś użyć ukośnika, aby wskazać hierarchię zasobów
- Zakoduj identyfikator URI przy użyciu odpowiedniego kodowania
- Postaraj się, aby identyfikator URI był czytelny dla człowieka
Czym są metody idempotentne?
Odpowiedź: Idempotentne metody HTTP mają taki sam wpływ na serwer, pomimo wysyłania wielu identycznych żądań. Na przykład, jeśli wyślesz wiele identycznych żądań USUŃ dla określonego zasobu, zasób nie zmieni się przy każdym żądaniu; zaktualizuje się tak, jakby wysłano tylko jedno żądanie.
Niektóre z metod idempotentnych obejmują:
- UMIEŚCIĆ
- USUWAĆ
- DOSTAWAĆ
- GŁOWA
- OPCJE
Co to jest listonosz?
Odpowiedź: Postman to narzędzie programistyczne API do tworzenia, modyfikowania i testowania interfejsów API. Zapewnia wiele funkcji do szybkiego tworzenia i testowania interfejsów API bez konieczności konfigurowania klienta.
Odpowiedź: Nagłówek Cache-Control składa się z instrukcji lub dyrektyw służących do konfigurowania buforowania w przeglądarkach i na serwerach. Mówi przeglądarce lub serwerowi, co ma być buforowane i jak długo powinno być buforowane, zanim zostanie zażądane przez żądanie sieciowe.
Nagłówek Cache-Control zawiera następujące dyrektywy: –
- maksymalny wiek
- bez pamięci podręcznej
- prywatny
- publiczny
- brak sklepu
- niezmienny
Zdefiniuj przesyłanie wiadomości w RESTful Web Services.
Odpowiedź: Przesyłanie wiadomości w usługach internetowych RESTful odnosi się do wysyłania przez klienta żądania HTTP do serwera, na które serwer odpowiada odpowiedzią HTTP. Ta komunikacja między klientem a serwerem nazywana jest przesyłaniem komunikatów.
Jaka jest różnica między architekturą monolityczną, architekturą SOA i mikrousługami?
Odpowiedź: W architekturze monolitycznej wszystkim zarządza się w jednym miejscu. Strona klienta, serwer, a także baza danych są zarządzane z jednego miejsca. Dlatego jest znany jako monolit, ponieważ słowo „monolit” odnosi się do pojedynczego bloku lub kamienia.
SOA oznacza architekturę zorientowaną na usługi. W tej architekturze różnymi aspektami aplikacji zarządzają różne usługi, które również są oprogramowaniem. Jest to więc połączenie wielu modułów oprogramowania serwisowego. Integracja jest kluczowym elementem tej architektury.
Architektura mikroserwisów jest podobna do SOA, ale w przeciwieństwie do SOA ma wiele autonomicznych programów, które komunikują się ze sobą za pomocą interfejsów API. W przeciwieństwie do architektury monolitycznej wszystko tutaj jest autonomiczne i do pewnego stopnia niezależne.
Jak działa architektura mikrousług?
Odpowiedź: W architekturze mikroserwisowej aplikacje są podzielone na mniejsze podjednostki, które są od siebie niezależne i działają samodzielnie, ale komunikują się ze sobą za pośrednictwem dobrze zdefiniowanego zestawu API.
Niektóre zalety architektury mikrousług obejmują zwinność, elastyczność, skalowalność, niezależne technologie, usługi wielokrotnego użytku i łatwe wdrażanie.
Co to jest CRUD?
Odpowiedź: CRUD to skrót od Create, Read, Update, Delete. Są to operacje, które można wykonać na określonym zasobie. Interfejs API, który obsługuje wszystkie te operacje, jest znany jako interfejs API CRUD. Są to najbardziej podstawowe operacje, które API może wykonać na zasobie.
Co to jest buforowanie?
Odpowiedź: Buforowanie to technika przechowywania odpowiedzi lub żądania na kliencie lub serwerze w celu ich późniejszego wykorzystania.
Odpowiedzi są zazwyczaj zapisywane w pamięci podręcznej klienta, ponieważ jeśli klient wysyła to samo żądanie kilka razy w krótkim odstępie czasu, nie ma sensu ponownie żądać odpowiedzi przez sieć i marnować przepustowości.
Jaki jest pożytek z @RequestMapping?
Odpowiedź: Jest to adnotacja w wiosennym frameworku, która służy do mapowania żądań sieciowych na określone klasy obsługi i/lub metody obsługi.
Co robi @PathVariable?
Odpowiedź: Adnotacja @PathVariable w frameworku Spring służy do wyodrębniania wartości zmiennych szablonu i przypisania ich wartości do zmiennej metody.
Zdefiniuj HttpMessageConverter.
Odpowiedź: Kiedy żądanie HTTP (lub jego część) musi zostać przekonwertowane na typ potrzebny jako argument dla metody obsługi lub gdy wartość zwracana przez metodę obsługi musi zostać w jakiś sposób przekonwertowana, aby utworzyć odpowiedź HTTP, HTTP używane są konwertery komunikatów.
Odpowiedź: Oto niektóre narzędzia, które mogą pomóc w testowaniu API:
- Listonosz
- Bądź pewny
- Odpoczywaj ostro
- katalon
- Gotowy interfejs API
- Apigee
Ostatnie słowa
W dzisiejszych czasach interfejsy API stały się niezwykle popularne ze względu na pojawienie się Internetu. Innym powodem, dla którego interfejsy API REST są popularne, jest to, że są łatwe do opracowania i łatwe w użyciu.
Jeśli przygotowujesz się do rozmowy kwalifikacyjnej, rozważ powyższe pytania dotyczące interfejsów API REST, które mogą zostać zadane podczas rozmowy kwalifikacyjnej.
Następnie możesz sprawdzić, jak zeskrobać witrynę za pomocą interfejsu API Web Scraping firmy newsblog.pl.