Spis treści[Ukryć][Pokazać]
- 1. Co rozumiesz przez REST?
- 2. Co rozumiesz przez REST API?
- 3. Czym dokładnie jest URI?
- 4. Jakie są cechy RESTful Web Services?
- 5. Jakie są zasady przewodnie REST?
- 6. Wymień metody HTTP obsługiwane przez REST.
- 7. Opisz ograniczenia nakładane przez spójny interfejs.
- 8. Czym dokładnie jest zasób REST?
- 9. Co oznacza dla Ciebie JAX-RS?
- 10. Co odróżnia AJAX i REST od siebie?
- 11. Czy możesz wymienić jakieś wady usług sieciowych RESTful?
- 12. Co odróżnia techniki PUT i POST od siebie?
- 13. Jak testujesz usługi sieciowe RESTful?
- 14. Opisz REST API w realnym świecie.
- 15. Jak działa architektura mikroserwisowa?
- 16. Czym dokładnie jest buforowanie?
- 17. Opisz ładunek.
- 18. Odróżnić SOAP od REST?
- 19. Czy protokół bezpieczeństwa warstwy transportowej (TLS) może być używany z REST?
- 20. Metody idempotentne: czym one są? Jak to się ma do świata usług internetowych RESTful?
- 21. Jaka jest funkcjonalność podstawowego uwierzytelniania HTTP?
- 22. Czy uważasz, że GraphQL jest najlepszym wyborem do tworzenia architektury mikroserwisowej?
- 23. Jakie są główne różnice między bezpiecznymi i idempotentnymi metodami HTTP?
- 24. Co oznacza API JAX-RS przez RESTful Root Resource Classes?
- 25. Czym dokładnie jest Postman i dlaczego jest używany?
- 26. W jaki sposób REST API są utrzymywane w bezpiecznym miejscu?
- Wnioski
Ewolucja REST sprawiła, że interfejsy API są niezwykle dostępne, a jednocześnie ujawniają ich pełną moc i potencjał. Interfejsy API REST są łatwe do tworzenia i buforowania ze względu na ich architekturę zorientowaną na zasoby.
Ponadto przez cały czas interfejsy API RESTful były prekursorami innych znaczących rozwiązań, takich jak przetwarzanie w chmurze i projektowanie oparte na mikrousługach.
Dlatego nie powinno dziwić, że deweloperzy REST API są dziś poszukiwani, biorąc pod uwagę sposób, w jaki zapewniają przewagę konkurencyjną firmom korzystającym z usług RESTful. REST API to popularny trend w projektowaniu.
Wiele firm IT chce wiedzy o REST API od programiści i pytaj o to w wywiadach technicznych.
Oto niektóre z najbardziej typowych pytań do rozmowy kwalifikacyjnej REST API, które pomogą Ci przygotować się do rozmów kwalifikacyjnych w różnych firmach, jeśli chcesz pracować w dziedzinie rozwoju REST API.
1. Co rozumiesz przez REST?
REST to paradygmat architektoniczny do projektowania aplikacji internetowych opartych na protokole Hypertext Transfer Protocol (HTTP).
REST definiuje pewne standardy, które muszą spełniać usługi sieci Web, aby można je było uznać za zgodne z REST. Zalecenia te gwarantują, że żądania i zasoby są przesyłane szybko i skutecznie między klientem a serwerem przy użyciu standardowych protokołów HTTP.
2. Co rozumiesz przez REST API?
Łącze oprogramowanie-oprogramowanie, znane jako interfejs programowania aplikacji, umożliwia komunikację i udostępnianie danych między innymi niezależnymi programami. Na przykład witryna z wiadomościami może korzystać z interfejsu API Twittera, aby automatycznie wykrywać odpowiednie tweety i integrować je z wiadomościami.
Interfejs API zgodny z zasadami REST jest znany jako interfejs API REST, czasami nazywany interfejsem API RESTful. W interfejsie API REST każdy element danych jest obsługiwany jako zasób i otrzymuje odrębną tożsamość standardowego zasobu (URI).
Na przykład Twitter API sprawia, że każdy tweet jest zasobem dostępnym dla klientów. Interfejs API Twittera może być używany przez użytkowników do publikowania tweetów i wykonywania innych zadań w witrynie.
3. Czym dokładnie jest URI?
A sieć komputerowa do zasobu można odwoływać się przy użyciu identyfikatora URI lub jednolitego identyfikatora zasobu. Służy do oddzielenia jednego zasobu od drugiego. Źródła mogą, ale nie muszą być online.
Dzięki standardowej strukturze identyfikatory URI ułatwiają łączenie się nawet z różnymi rodzajami zasobów. Lokalizacja lub nazwa zasobu jest zawarta w identyfikatorach URI wraz z ciągiem znaków.
Identyfikator URI składa się ze ścieżki, schematu, zapytania i innych elementów, ale nie zawiera protokołu.
Korzystając z protokołu, adresy URL (Uniform Resource Locators) służą do wyszukiwania zasobów w Internecie lub dostępnych za jego pośrednictwem.
4. Jakie są cechy RESTful Web Services?
- Podstawą usługi jest paradygmat Klient-Serwer.
- Usługa może uzyskiwać dostęp do zasobów za pomocą identyfikatorów URI.
- Usługa wykorzystuje protokół HTTP do pozyskiwania danych/zasobów, uruchamiania zapytań i wykonywania innych zadań.
- Komunikaty to nazwa metody używanej do komunikacji między klientem a serwerem.
- Te usługi mogą również implementować wzorzec architektoniczny REST przy użyciu usług SOAP.
- Aby zredukować wywołania serwera dla tego samego rodzaju powtarzających się żądań, usługi te również wykorzystują ideę buforowania.
5. Jakie są zasady przewodnie REST?
Interfejsy API REST muszą spełniać pięć kryteriów:
Oddzielenie klient-serwer: do komunikacji między klientem a serwerem można użyć tylko serii żądań i odpowiedzi. Tylko klienci i serwery mogą wysyłać odpowiednio żądania i odpowiedzi. Ten prosty pomysł umożliwia obu stronom funkcjonowanie niezależnie od siebie.
Jednolity interfejs: musi istnieć jednolity protokół dla wszystkich połączeń klient-serwer. Ten protokół dla REST to HTTP. Ponieważ każda aplikacja żąda i wysyła dane w tym samym języku, spójny interfejs ułatwia integrację.
Bezstanowe: serwer nie zapisuje żadnych rekordów poprzednich żądań ani odpowiedzi w komunikacji bezstanowej. Każda prośba i odpowiedź zawierają wszystkie dane wymagane do zakończenia wymiany. Komunikacja bezstanowa zwiększa szybkość, oszczędza pamięć i zmniejsza obciążenie serwera. Dodatkowo pozwala uniknąć potencjalnego niepowodzenia żądania z powodu niekompletnych danych.
System warstwowy: serwery znajdujące się między klientem a serwerem API są określane jako warstwy. Te dodatkowe serwery wykonują różnorodne usługi, takie jak wykrywanie spamu i optymalizacja szybkości. Warstwy w REST są modułowe, co oznacza, że można je dodawać i usuwać bez wpływu na komunikację między klientem a serwerem API.
Cacheable: Klienci mogą buforować dowolne zasoby, aby zwiększyć szybkość, jeśli odpowiedzi serwera wskazują, czy zasób można buforować.
Kodowanie na żądanie: W odpowiedzi interfejs API może przesyłać do klientów wykonywalny kod komputerowy. Aplikacja kliencka może następnie uruchomić kod na własnym zapleczu.
6. Wymień metody HTTP obsługiwane przez REST.
Metody HTTP obsługiwane przez REST to:
- POBIERZ: Ta metoda prosi o zasób pod określonym adresem URL. Treść żądania nie powinna być dołączana, ponieważ zostanie zignorowana. Może być możliwe buforowanie go lokalnie lub na serwerze.
- POST: Ta metoda wysyła dane do usługi w celu przetworzenia, a usługa powinna normalnie zwrócić nowy lub zmieniony zasób.
- PUT: zasób jest aktualizowany pod adresem URL żądania.
- USUŃ: zasób jest usuwany pod adresem URL żądania.
- Opcje: Identyfikuje obsługiwane metody.
- HEAD: Zwracane są metadane adresu URL żądania.
7. Opisz ograniczenia nakładane przez spójny interfejs.
W celu oddzielenia klienta od serwera wymagany jest spójny interfejs.
Aby uzyskać spójny interfejs, wymagane są następujące cztery ograniczenia:
- Identyfikacja zasobów: żądania klientów muszą wykorzystywać standardowe identyfikatory zasobów do identyfikacji zasobów (URI)
- Manipulacja zasobami przy użyciu tych reprezentacji: Klienci mają wszystkie informacje wymagane do zmiany stanu zasobów po otrzymaniu reprezentacji zasobu z serwera.
- Komunikaty samoopisowe: Komunikaty zawierają wszystkie metadane i inne informacje wymagane do ich zrozumienia przez odbiorcę.
- Hypermedia jako silnik stanu aplikacji: kanałem komunikacji klient-serwer są hipermedia, takie jak HTML, a klienci nie potrzebują dokumentacji dotyczącej interfejsu API, aby zrozumieć odpowiedzi serwera.
8. Czym dokładnie jest zasób REST?
Zasoby są podstawowymi składnikami usługi sieciowej RESTful w architekturze REST. Zawierają wszystkie kluczowe informacje, do których klient API musi mieć dostęp.
Za pośrednictwem serwera w systemie klient-serwer można uzyskać dostęp do dowolnego typu zasobów, takich jak strona HTML, obraz, wideo lub cokolwiek innego potrzebnego do działania interfejsu API.
Zasoby są identyfikowane przez Uniform Resource Identifier. Tekst, JSON lub XML są akceptowalnymi reprezentacjami zasobów. Stwierdzając to, nie ma ograniczeń co do formatu przedstawienia.
9. Co oznacza dla Ciebie JAX-RS?
Tworzenie usług internetowych zgodnych z REST w Javie jest prostsze dzięki interfejsowi Java API dla usług internetowych zgodnych z REST, często znanego jako JAX-RS. Deweloperzy mogą opisywać zasoby i operacje, które można na nich wykonać, korzystając z udostępnionych adnotacji.
10. Co odróżnia AJAX i REST od siebie?
Ajaks:
- Ajax to grupa technologii, która pozwala na dynamiczną aktualizację UI elementy bez konieczności ponownego ładowania strony.
- Ajax usuwa asynchroniczną komunikację między klientem a serwerem.
RESZTA:
- REST wymaga komunikacji między serwerem a klientem.
- Wykorzystanie zasobów jest ważne dla struktury adresu URL i wzorca żądania/odpowiedzi używanego przez REST.
11. Czy możesz wymienić jakieś wady usług sieciowych RESTful?
Sesje nie mogą być podtrzymywane, ponieważ usługi są zgodne z pojęciem bezpaństwowości. (Klient jest odpowiedzialny za przekazanie identyfikatora sesji przez całą symulację sesji.)
Ograniczenia bezpieczeństwa nie są fundamentalne dla REST. Protokoły, które go używają, dziedziczą środki ostrożności. Dlatego ważne jest zachowanie ostrożności podczas wdrażania środków bezpieczeństwa, takich jak integracja uwierzytelniania opartego na protokole SSL/TLS.
12. Co odróżnia techniki PUT i POST od siebie?
POŁOŻYĆ:
- Nie ma pamięci podręcznej na odpowiedzi PUT.
- Idempotentny (tj. wiele żądań da ten sam wynik)
- ładunek żądania aktualizuje lub zastępuje zasób docelowy.
STANOWISKO:
- idempotent nie (tj. wiele żądań da wielokrotności tego samego zasobu)
- Serwer sieciowy przetwarza ładunek żądania na podstawie zamierzonego zasobu.
- Jeśli dołączony jest odpowiedni nagłówek kontroli pamięci podręcznej, odpowiedzi POST mogą być buforowane.
13. Jak testujesz usługi sieciowe RESTful?
Testowanie usług internetowych RESTful może być wspomagane przez szereg narzędzi, w tym Swagger i Postman. Sprawdzanie parametrów żądania, takich jak parametry zapytania, nagłówki i nagłówki odpowiedzi, jest możliwe dzięki obfitości funkcji tego ostatniego.
Postman może być używany do wysyłania żądań do punktów końcowych i pokazywania wyników. Z tych odpowiedzi można utworzyć XML i JSON.
Postman i Swagger zapewniają niezwykle porównywalne funkcje. Z drugiej strony Swagger oferuje również możliwości, takie jak dokumentacja punktów końcowych.
14. Opisz REST API w realnym świecie.
- Witryny dotyczące podróży i sprzedaży biletów mogą wykorzystywać rozkłady lotów i ceny udostępniane przez linie lotnicze za pośrednictwem interfejsów API.
- Aby aplikacje mapujące i nawigacyjne (takie jak Google Maps) mogły z nich korzystać, agencje transportu publicznego często udostępniają swoje dane publicznie w czasie rzeczywistym za pośrednictwem interfejsów API.
- Aplikacje pogodowe korzystają z otwartych interfejsów API, które wymieniają dane pogodowe w celu wyświetlania informacji o pogodzie.
- Programiści mogą uzyskiwać dostęp do danych map Map Google za pośrednictwem wielu hostowanych interfejsów API. Te interfejsy API są używane przez programistów do osadzania dynamicznych map w swoich aplikacjach i witrynach internetowych.
15. Jak działa architektura mikroserwisowa?
- Zapytania są wysyłane przez różnych klientów za pomocą różnych urządzeń.
- Po potwierdzeniu tożsamości klientów dostawcy tożsamości udostępniają tokeny zabezpieczające.
- Żądaniami klientów zarządza API Gateway.
- Cały materiał systemu jest zachowywany jako zawartość statyczna.
- Narzędzie do zarządzania sprawdza równowagę usług na węzłach i wszelkie awarie.
- Odkrywanie ścieżki komunikacji między mikrousługami jest wspomagane przez wykrywanie usług.
- Centra danych i serwery proxy tworzą rozproszone systemy sieciowe zwane sieciami dostarczania treści.
- Usługi zdalne zapewniają dostęp do informacji na odległość.
16. Czym dokładnie jest buforowanie?
Praktyka tymczasowego przechowywania gdzieś kopii odpowiedzi serwera (np. pamięci komputera) w celu późniejszego szybszego dostępu do niej jest znana jako buforowanie.
Buforowanie zwiększa szybkość serwera podczas korzystania z interfejsów API REST, zmniejszając ilość pracy, którą serwer musi wykonać, aby spełnić żądanie. Aplikacje korzystające z interfejsu API działają szybciej dzięki buforowaniu, ponieważ nie muszą przesyłać nowego żądania za każdym razem, gdy potrzebują zasobu.
Pole Cache-Control w nagłówku odpowiedzi HTTP zawiera informacje o tym, jak długo zasób może być buforowany przez klienta, zanim trzeba będzie ponownie uzyskać do niego dostęp.
17. Opisz ładunek.
Ładunek w REST odnosi się do informacji zawartych w treści odpowiedzi HTTP. Klient wykorzystał technikę GET, aby zażądać danych, o które chodzi.
Dokument zawierający tekst tweeta i wszelkie pliki niezbędne do umieszczenia tweeta na stronie internetowej zostaną uwzględnione w ładunku, na przykład, jeśli poprosisz API Twittera o konkretny tweet. Dodatkowo ładunek można dołączyć do żądania HTTP przy użyciu metody POST.
18. Różnicuj MYDŁO A ODPOCZYNEK?
- W przeciwieństwie do SOAP, który obsługuje tylko XML, REST umożliwia szerszy zakres formatów zasobów, w tym XML, tekst, HTML, obrazy, wideo i inne.
- Gdy bezpieczeństwo ma kluczowe znaczenie dla aplikacji internetowych, SOAP jest pomocny. REST nie może być używany, gdy transakcje muszą być realizowane w bezpieczny sposób, ponieważ nie jest on szczególnie bezpieczny.
- Ponieważ SOAP jest tylko protokołem, REST może go używać w swoich usługach internetowych, ale nie na odwrót.
- Podczas gdy REST jest tylko wzorcem architektonicznym używanym do tworzenia usług internetowych i przestrzega pewnych ograniczeń, takich jak konfiguracja klient-serwer, bezstanowość, buforowana odpowiedź, systemy warstwowe i spójny interfejs, SOAP jest protokołem, który działa na określonych standardach, które muszą być rygorystycznie przestrzegane do.
- Podczas gdy REST używa uniwersalnych identyfikatorów zasobów (URI), SOAP używa interfejsów usług, aby zapewnić swoje możliwości aplikacjom klienckim. REST wymaga mniejszej przepustowości niż SOAP, ponieważ komunikaty SOAP zawierają więcej informacji.
19. Czy protokół bezpieczeństwa warstwy transportowej (TLS) może być używany z REST?
W rzeczywistości możemy. Komunikacja klienta i serwera REST jest szyfrowana za pomocą TLS, a protokół daje również klientom możliwość uwierzytelniania serwerów.
Ze względu na to, że jest zamiennikiem Secure Socket Layer, służy do bezpiecznej komunikacji (SSL). Implementacja usług internetowych RESTful jest udana dzięki HTTPS, ponieważ skutecznie współpracuje zarówno z TLS, jak i SSL.
REST dziedziczy cechy protokołu, który implementuje, na co należy zwrócić uwagę. W rezultacie zabezpieczenia są zależne od protokołu używanego przez REST.
20. Metody idempotentne: czym one są? Jak to się ma do świata usług internetowych RESTful?
Gdy identyfikator URI jest taki sam, niektóre metody HTTP w żądaniu mają taki sam wpływ na serwer, niezależnie od tego, czy są dostarczane raz, czy kilka razy. Znane są te techniki idempotentne.
Na przykład bez względu na to, ile razy zostanie uruchomiony identyfikator URI przy użyciu metody GET, serwer zawsze uzyska ten sam wynik. Metody idempotentne to między innymi GET, PUT i PATCH.
Idempotentne metody HTTP to tylko niektóre z wykorzystywanych przez RESTful Aplikacje internetowe. Są one niezbędne do zagwarantowania spójności działań usług internetowych RESTful.
Klienci korzystający z interfejsów API REST mogą popełniać błędy w kodzie, które zmuszają interfejs API REST do przypadkowego powtarzania żądań. Wezwania te mogą potencjalnie nadużywać zasobów.
21. Jaka jest funkcjonalność podstawowego uwierzytelniania HTTP?
Korzystając z uwierzytelniania podstawowego w ramach API, użytkownik musi podać nazwę użytkownika i hasło, które są łączone przez przeglądarkę w postaci „nazwa użytkownika: hasło” i zakodowane w base64.
Przy każdym żądaniu HTTP z przeglądarki zakodowana wartość jest dostarczana jako wartość nagłówka „Authorization”. Ponieważ poświadczenia są po prostu zaszyfrowane, zaleca się używanie tego formularza podczas wysyłania żądań HTTPS, ponieważ nie są one bezpieczne i mogą zostać przechwycone przez każdego, jeśli nie są używane protokoły bezpieczeństwa.
22. Czy uważasz, że GraphQL jest najlepszym wyborem do tworzenia architektury mikroserwisowej?
Mikrousługi i GraphQL idą ze sobą idealnie, ponieważ GraphQL utrzymuje architekturę mikrousług w tajemnicy przed klientami.
Z frontendu chcesz, aby wszystkie Twoje dane pochodziły z jednego API, a z zaplecza chcesz podzielić je na mikroserwisy. Najlepszą techniką, jaką znam, aby osiągnąć oba, jest użycie GraphQL.
Umożliwia podzielenie zaplecza na mikrousługi, jednocześnie dając każdej aplikacji pojedynczy interfejs API i umożliwiając łączenie danych z różnych usług.
23. Jakie są główne różnice między bezpiecznymi i idempotentnymi metodami HTTP?
Metody idempotentne dają ten sam wynik, gdy są wywoływane raz lub kilka razy przez to samo żądanie. Metoda PUT jest idempotentna.
Wszystkie bezpieczne sposoby są idempotentne, ale nie wszystkie idempotentne metody są bezpieczne, ponieważ bezpieczne metody nie zmieniają zasobów. Na przykład GET jest bezpieczny, ponieważ tylko pobiera dane i nie zmienia zasobu.
Dodatkowo jest idempotentny, co oznacza, że po wywołaniu zawsze zwróci tę samą odpowiedź.
24. Co oznacza API JAX-RS przez RESTful Root Resource Classes?
Java Enterprise Edition udostępnia klasy i interfejsy zgodne z wymaganiami interfejsu API JAX-RS. Za pomocą JAX-RS tworzenie serwisów internetowych w języku Java w stylu architektonicznym REST jest łatwiejsze.
W JAX-RS API, główne klasy zasobów to po prostu „zwykłe stare obiekty java” lub POJO. W celu wdrożenia niezbędnych zasobów sieciowych wykorzystują adnotacje JAX-RS.
Mają adnotacje @path lub co najmniej jedna z ich metod ma adnotacje @path. Można je podsumować jako klasy Javy z metodami radzenia sobie z punktami końcowymi API.
25. Czym dokładnie jest Postman i dlaczego jest używany?
Narzędzie programistyczne API o nazwie Postman służy do tworzenia, testowania i modyfikowania API. To narzędzie może być używane przez programistów do dowolnej funkcji, której potrzebują do interfejsu API. Upraszcza i ułatwia pracę programistom.
Postman ułatwia tworzenie różnych zapytań HTTP, w tym GET, POST, PUT i PATCH, zapisywanie środowisk do późniejszego wykorzystania i konwertowanie interfejsów API na kod w wielu różnych językach.
Każdy etap cyklu API jest prostszy dzięki Postmanowi, a współpraca jest usprawniona w celu szybszego rozwoju API.
Dodatkowo umożliwia programistom zarządzanie dokumentacją, specyfikacjami, przypadkami testowymi, procesami i katalogami API.
26. W jaki sposób REST API są utrzymywane w bezpiecznym miejscu?
Ponieważ interfejsy API REST nie korzystają z tak rygorystycznych zabezpieczeń, jak interfejsy API SOAP, poufne dane nie powinny być wysyłane ani pobierane za ich pomocą.
Jednak godne zaufania interfejsy API REST nadal integrują mechanizmy bezpieczeństwa, aby zapewnić bezpieczną i niezawodną transmisję danych.
- Uwierzytelnianie i autoryzacja: Każde żądanie skierowane do interfejsu API musi przejść te dwie kontrole. Weryfikowanie tożsamości klienta przez uwierzytelnianie i sprawdzanie, czy ma on uprawnienia dostępu do żądanych zasobów poprzez autoryzację, to dwa różne procesy.
- Walidacja: Zanim API przyzna dostęp do swoich zasobów, żądania muszą być nadal sprawdzane pod kątem potencjalnie szkodliwego kodu po uwierzytelnieniu i autoryzacji. Serwer byłby w ten sposób otwarty na atak wstrzykiwania.
- Walidacja: Zanim API przyzna dostęp do swoich zasobów, żądania muszą być nadal sprawdzane pod kątem potencjalnie szkodliwego kodu po uwierzytelnieniu i autoryzacji. Serwer byłby w ten sposób otwarty na atak wstrzykiwania.
- Szyfrowanie: szyfrowanie TLS/SSL chroni połączenie między klientem a serwerem i uniemożliwia hakerom przechwytywanie żądań i odpowiedzi.
- Techniki ograniczania szybkości, takie jak limity i ograniczanie przepustowości, chronią serwery przed atakami typu brute-force, takimi jak DDoS, które mają na celu ich degradację lub awarię.
- Brak poufnych informacji w identyfikatorach URI: identyfikatory URI zasobów nie powinny zawierać żadnych chronionych danych (takich jak nazwa użytkownika, hasło lub token uwierzytelniania).
Wnioski
Gratulacje! Kilka podstawowych i złożonych pytań do rozmowy kwalifikacyjnej REST API i odpowiednich rozwiązań jest teraz na wyciągnięcie ręki.
Teraz, gdy masz już dobry pomysł, jak odpowiedzieć na niektóre z typowych pytań do rozmowy kwalifikacyjnej REST API, możesz przejść do odpowiadania na rozmowy kwalifikacyjne. Następny krok zależy od Twoich celów.
Odwiedzić Seria wywiadów z Hashdorkiem, aby przygotować się do rozmów kwalifikacyjnych.
Dodaj komentarz