Domanda |
Risposta |
inizia ad imparare
|
|
API (Application Programming Interface) to zbiór reguł i protokołów umożliwiających komunikację między różnymi aplikacjami.
|
|
|
inizia ad imparare
|
|
Rodzaje API obejmują API webowe (REST, SOAP), API systemowe, API bibliotek i API obiektowe.
|
|
|
inizia ad imparare
|
|
REST (Representational State Transfer) API to styl architektury opartej na HTTP, gdzie operacje CRUD (Create, Read, Update, Delete) są mapowane na metody HTTP (POST, GET, PUT, DELETE).
|
|
|
inizia ad imparare
|
|
SOAP (Simple Object Access Protocol) to protokół komunikacyjny oparty na XML, używany do wymiany informacji w rozproszonym środowisku, z wyraźnie określoną strukturą wiadomości.
|
|
|
Jakie metody HTTP są najczęściej używane w REST API? inizia ad imparare
|
|
Najczęściej używane metody HTTP to GET (pobierz dane), POST (utwórz zasób), PUT (zaktualizuj zasób), DELETE (usuń zasób) i PATCH (częściowo zaktualizuj zasób).
|
|
|
inizia ad imparare
|
|
JSON (JavaScript Object Notation) to lekki format wymiany danych, który jest łatwy do odczytania i zapisu zarówno dla ludzi, jak i maszyn.
|
|
|
Jakie są zalety REST API? inizia ad imparare
|
|
Zalety REST API obejmują prostotę, łatwość skalowania, zgodność z HTTP oraz szerokie wsparcie w różnych językach programowania.
|
|
|
Jakie są zalety SOAP API? inizia ad imparare
|
|
Zalety SOAP API obejmują ścisłe definicje struktury wiadomości, wsparcie dla transakcji oraz wsparcie dla bezpieczeństwa na poziomie protokołu.
|
|
|
Co to jest endpoint w kontekście API? inizia ad imparare
|
|
Endpoint to specyficzny URL, który reprezentuje punkt dostępu do zasobu lub funkcjonalności oferowanej przez API.
|
|
|
inizia ad imparare
|
|
API można zabezpieczyć za pomocą autoryzacji (OAuth, JWT), szyfrowania (HTTPS), limitowania zapytań (rate limiting) oraz walidacji wejściowych danych.
|
|
|
inizia ad imparare
|
|
OAuth to otwarty standard autoryzacji, który pozwala aplikacjom na uzyskanie ograniczonego dostępu do zasobów użytkownika bez konieczności udostępniania jego poświadczeń.
|
|
|
inizia ad imparare
|
|
JWT (JSON Web Token) to kompaktowy, samopodpisany token, który jest używany do uwierzytelniania i autoryzacji w aplikacjach webowych.
|
|
|
Jakie są najlepsze praktyki tworzenia RESTful API? inizia ad imparare
|
|
Najlepsze praktyki obejmują: używanie właściwych metod HTTP, jasne i zwięzłe endpointy, korzystanie z kodów statusu HTTP, dokumentowanie API oraz stosowanie wersjonowania.
|
|
|
Co to jest wersjonowanie API? inizia ad imparare
|
|
Wersjonowanie API polega na oznaczaniu wersji API (np. v1, v2) w celu umożliwienia wprowadzania zmian bez wpływu na istniejące aplikacje korzystające z wcześniejszych wersji.
|
|
|
Jakie narzędzia mogą pomóc w testowaniu API? inizia ad imparare
|
|
Narzędzia takie jak Postman, Insomnia oraz CURL są często używane do testowania API.
|
|
|
Co to jest middleware w kontekście API? inizia ad imparare
|
|
Middleware to oprogramowanie pośredniczące, które znajduje się pomiędzy klientem a serwerem i wykonuje różne funkcje, takie jak logowanie, autoryzacja, walidacja danych.
|
|
|
akie jest znaczenie kodów statusu HTTP w API? inizia ad imparare
|
|
Kody statusu HTTP informują klienta o wyniku jego zapytania do serwera, np. 200 OK, 404 Not Found, 500 Internal Server Error.
|
|
|
inizia ad imparare
|
|
API Gateway to punkt wejściowy dla wszystkich zapytań do API, który zarządza routingiem, zabezpieczeniami, limitowaniem zapytań i innymi usługami.
|
|
|
Jakie są korzyści z używania API Gateway? inizia ad imparare
|
|
API Gateway oferuje centralne zarządzanie ruchem, poprawia bezpieczeństwo, ułatwia skalowanie oraz pozwala na monitorowanie i logowanie zapytań.
|
|
|
Jak zintegrować API w aplikacji PHP? inizia ad imparare
|
|
API można zintegrować w aplikacji PHP za pomocą bibliotek takich jak cURL, Guzzle czy wykorzystując wbudowane funkcje PHP do wykonywania zapytań HTTP.
|
|
|
Co to jest CORS (Cross-Origin Resource Sharing)? inizia ad imparare
|
|
CORS to mechanizm bezpieczeństwa w przeglądarkach, który kontroluje dostęp do zasobów na innych domenach niż źródłowa domena, zabezpieczając przed atakami CSRF.
|
|
|
Jakie są metody autoryzacji w REST API? inizia ad imparare
|
|
Metody autoryzacji w REST API to tokeny JWT, tokeny OAuth, klucze API oraz podpisywane zapytania.
|
|
|
Co to jest Rate Limiting? inizia ad imparare
|
|
Rate Limiting to technika kontrolowania liczby zapytań, które klient może wysłać do API w określonym czasie, zapobiegając nadmiernemu obciążeniu serwera.
|
|
|
Jakie są zalety używania formatu XML w API? inizia ad imparare
|
|
Zalety XML w API to silna struktura danych, wsparcie dla różnych typów danych i możliwość walidacji danych za pomocą schematów XML.
|
|
|
inizia ad imparare
|
|
GraphQL to język zapytań do API oraz środowisko wykonawcze, które umożliwia klientom żądanie dokładnie takich danych, jakie potrzebują.
|
|
|
Jakie są zalety GraphQL w porównaniu do REST API? inizia ad imparare
|
|
Zalety GraphQL obejmują pobieranie dokładnie potrzebnych danych w jednym zapytaniu, eliminację nadpobudliwości danych oraz silną typizację i intuicyjną dokumentację.
|
|
|
inizia ad imparare
|
|
HATEOAS (Hypermedia as the Engine of Application State) to architektura REST API, która umożliwia klientom odkrywanie i nawigowanie po API poprzez dynamiczne linki w odpowiedziach.
|
|
|
Jakie są narzędzia do dokumentowania API? inizia ad imparare
|
|
Narzędzia takie jak Swagger, OpenAPI oraz Postman są używane do automatycznego generowania dokumentacji API, opisującej endpointy, parametry i odpowiedzi.
|
|
|
Co to jest testowanie jednostkowe API? inizia ad imparare
|
|
Testowanie jednostkowe API polega na automatycznym sprawdzaniu poprawności jego funkcjonalności, w tym poprawności danych wejściowych i wyjściowych.
|
|
|
Jakie są typowe problemy związane z API? inizia ad imparare
|
|
Typowe problemy związane z API obejmują nieadekwatną dokumentację, brak wsparcia dla wersjonowania, nadmierne zapytania oraz problemy z bezpieczeństwem i autoryzacją.
|
|
|
inizia ad imparare
|
|
Webhooks to mechanizm, który umożliwia aplikacjom na wysyłanie automatycznych powiadomień lub informacji do innych aplikacji w czasie rzeczywistym.
|
|
|
Czym jest autoryzacja i autentykacja w kontekście API? inizia ad imparare
|
|
Autentykacja to proces weryfikacji tożsamości użytkownika, podczas gdy autoryzacja określa uprawnienia dostępu do określonych zasobów lub operacji.
|
|
|
Jakie są najlepsze praktyki związane z projektowaniem API? inizia ad imparare
|
|
Najlepsze praktyki obejmują zapewnienie spójności nazewnictwa endpointów, dokumentację API, zastosowanie odpowiednich statusów HTTP oraz obsługę błędów.
|
|
|
Co to są nagłówki HTTP i jak są używane w API? inizia ad imparare
|
|
Nagłówki HTTP zawierają dodatkowe informacje przesyłane w żądaniu lub odpowiedzi, np. typ danych, autoryzację, cache-control.
|
|
|
Jakie są podstawowe zasady bezpieczeństwa dotyczące API? inizia ad imparare
|
|
Podstawowe zasady obejmują używanie protokołu HTTPS, autoryzację każdego żądania, walidację danych wejściowych oraz ograniczanie uprawnień dostępu.
|
|
|
Czym jest RESTful routing w kontekście API? inizia ad imparare
|
|
RESTful routing odnosi się do sposobu mapowania ścieżek URL na operacje CRUD (Create, Read, Update, Delete) oraz odpowiednie metody HTTP.
|
|
|
Jakie są różnice między synchronicznym a asynchronicznym API? inizia ad imparare
|
|
Synchroniczne API zwraca odpowiedź natychmiast po otrzymaniu żądania, podczas gdy asynchroniczne API przetwarza żądanie i zwraca odpowiedź później, co jest użyteczne przy długotrwałych operacjach.
|
|
|
Co to jest paginacja w kontekście API? inizia ad imparare
|
|
Paginacja jest techniką dzielenia dużych zestawów danych na mniejsze części zwane stronami, co umożliwia łatwiejsze przeglądanie i zarządzanie danymi przez klientów API.
|
|
|
Co to jest throttling w kontekście API? inizia ad imparare
|
|
Throttling (limitowanie) jest techniką kontrolowania przepustowości API poprzez ograniczenie liczby żądań na jednostkę czasu dla każdego klienta, aby zapobiec nadmiernemu obciążeniu serwera.
|
|
|
Czym jest kodowanie UTF-8 i dlaczego jest istotne w programowaniu? inizia ad imparare
|
|
UTF-8 to standard kodowania znaków, który umożliwia reprezentację znaków z różnych systemów pisma i języków. Jest istotny, ponieważ zapewnia wsparcie dla międzynarodowych znaków i symboli.
|
|
|
Co oznacza status HTTP 200 OK? inizia ad imparare
|
|
Status HTTP 200 OK oznacza, że żądanie HTTP zostało pomyślnie zrealizowane, a serwer zwraca oczekiwane dane.
|
|
|
Kiedy używany jest status HTTP 404 Not Found? inizia ad imparare
|
|
Status HTTP 404 Not Found jest używany, gdy żądany zasób nie został znaleziony na serwerze.
|
|
|
Co oznacza status HTTP 301 Moved Permanently? inizia ad imparare
|
|
Status HTTP 301 Moved Permanently oznacza, że zasób został przeniesiony na stałe pod inny adres URL.
|
|
|
Jaką rolę pełnią statusy HTTP z kategorii 5xx? inizia ad imparare
|
|
Statusy HTTP z kategorii 5xx (np. 500 Internal Server Error, 503 Service Unavailable) sygnalizują błędy po stronie serwera, które uniemożliwiają pomyślne wykonanie żądania przez klienta.
|
|
|
Kiedy stosuje się status HTTP 204 No Content? inizia ad imparare
|
|
Status HTTP 204 No Content jest używany, gdy serwer pomyślnie przetworzył żądanie, ale nie ma dodatkowej zawartości do zwrócenia.
|
|
|
Co oznacza status HTTP 302 Found? inizia ad imparare
|
|
Status HTTP 302 Found informuje, że żądany zasób został tymczasowo przeniesiony pod inny adres URL.
|
|
|
Jakie są różnice między statusami HTTP 301 a 302? inizia ad imparare
|
|
Status HTTP 301 Moved Permanently oznacza, że zasób został przeniesiony na stałe, podczas gdy status HTTP 302 Found wskazuje na tymczasowe przekierowanie.
|
|
|
Co oznacza status HTTP 401 Unauthorized? inizia ad imparare
|
|
Status HTTP 401 Unauthorized informuje, że klient nie jest autoryzowany do uzyskania dostępu do żądanego zasobu, najczęściej ze względu na brak lub nieprawidłowe dane uwierzytelniające.
|
|
|
Jakie są najczęstsze przyczyny wystąpienia statusu HTTP 500 Internal Server Error? inizia ad imparare
|
|
Status HTTP 500 Internal Server Error występuje najczęściej w przypadku ogólnych błędów serwera, które nie zostały precyzyjnie zdefiniowane lub które wystąpiły z powodu nieoczekiwanego problemu z aplikacją serwera.
|
|
|
inizia ad imparare
|
|
WebSocket to protokół komunikacyjny, który umożliwia dwukierunkową komunikację w czasie rzeczywistym między klientem a serwerem poprzez pojedyncze, stale otwarte połączenie.
|
|
|
inizia ad imparare
|
|
1xx Informacyjne: Oznaczają, że żądanie zostało odebrane i przetwarzane.
|
|
|
inizia ad imparare
|
|
2xx Sukces: Oznaczają, że żądanie zakończyło się sukcesem (np. 200 OK).
|
|
|
inizia ad imparare
|
|
3xx Przekierowanie: Wymagają podjęcia dodatkowych działań przez klienta (np. 301 Moved Permanently).
|
|
|
inizia ad imparare
|
|
4xx Błędy klienta: Oznaczają, że wystąpił błąd po stronie klienta (np. 404 Not Found).
|
|
|
inizia ad imparare
|
|
5xx Błędy serwera: Oznaczają, że wystąpił błąd po stronie serwera (np. 500 Internal Server Error).
|
|
|
Co to jest payload w kontekście API? inizia ad imparare
|
|
Payload to część żądania lub odpowiedzi HTTP, która zawiera dane przesyłane między klientem a serwerem. W przypadku żądania POST payload zawiera dane przesyłane na serwer, natomiast w przypadku odpowiedzi payload zawiera dane zwracane przez serwer.
|
|
|
inizia ad imparare
|
|
API Key to unikalny identyfikator używany do uwierzytelniania i autoryzacji dostępu do API. Jest przekazywany jako część żądania API i pozwala na śledzenie oraz kontrolowanie dostępu do zasobów.
|
|
|
Co to jest latency w kontekście API? inizia ad imparare
|
|
Latency (opóźnienie) to czas, jaki upływa od momentu wysłania żądania przez klienta do momentu otrzymania odpowiedzi od serwera. Mniejsze opóźnienia oznaczają lepszą wydajność API.
|
|
|
Co to jest load balancing w kontekście API? inizia ad imparare
|
|
Load balancing to technika rozdzielania ruchu sieciowego na wiele serwerów, aby zapewnić równomierne obciążenie, zwiększyć dostępność i poprawić wydajność API.
|
|
|
Jakie są różnice między rate limiting a throttling? inizia ad imparare
|
|
Rate Limiting: Ogranicza liczbę żądań w określonym czasie (np. 100 żądań na minutę). Throttling: Kontroluje szybkość wysyłania żądań, aby zapobiec przeciążeniu systemu.
|
|
|
Jakie są techniki cachingu w API i dlaczego są ważne? inizia ad imparare
|
|
Techniki: Cache-Control, ETag, Expires. Znaczenie: Caching zmniejsza obciążenie serwera, skraca czas odpowiedzi i poprawia wydajność aplikacji poprzez przechowywanie odpowiedzi na częste żądania.
|
|
|
Co to jest SSL/TLS i jak działa w kontekście API? inizia ad imparare
|
|
SSL (Secure Sockets Layer) i jego nowsza wersja TLS (Transport Layer Security) to protokoły zapewniające bezpieczną komunikację przez sieć, stosowane do szyfrowania ruchu HTTP (HTTPS). Zapewniają integralność, poufność i autentyczność przesyłanych danych.
|
|
|
Co to jest HTTPS i dlaczego jest ważne dla API? inizia ad imparare
|
|
HTTPS (Hypertext Transfer Protocol Secure) to wersja HTTP zabezpieczona przy użyciu SSL/TLS. Jest kluczowe dla API, ponieważ szyfruje dane przesyłane między klientem a serwerem, zapobiegając podsłuchiwaniu, manipulacji i atakom typu man-in-the-middle.
|
|
|
Jak OAuth 2.0 wykorzystuje szyfrowanie w kontekście API? inizia ad imparare
|
|
Umożliwia aplikacjom uzyskiwanie ograniczonego dostępu do zasobów użytkownika na serwerze bez udostępniania jego poświadczeń. Szyfrowanie jest używane do zabezpieczenia tokenów dostępu podczas ich transmisji przez HTTPS.
|
|
|
Co to jest szyfrowanie danych w spoczynku i dlaczego jest ważne dla API? inizia ad imparare
|
|
Technika zabezpieczania danych przechowywanych na dyskach serwerów API. Zabezpiecza przed nieautoryzowanym dostępem do danych, nawet jeśli fizyczne nośniki zostaną skradzione.
|
|
|
Co to jest szyfrowanie danych w tranzycie i dlaczego jest ważne dla API? inizia ad imparare
|
|
Szyfrowanie danych w tranzycie to technika zabezpieczania danych przesyłanych między klientem a serwerem API za pomocą protokołów takich jak SSL/TLS. Chroni przed przechwytywaniem i manipulacją danych podczas transmisji.
|
|
|
Co to jest HSTS i jak wspiera bezpieczeństwo API? inizia ad imparare
|
|
HSTS to mechanizm bezpieczeństwa, który wymusza, aby przeglądarka zawsze komunikowała się z serwerem za pomocą HTTPS. Zabezpiecza przed atakami typu downgrade i man-in-the-middle, poprawiając bezpieczeństwo API.
|
|
|
Jakie są podstawowe zasady projektowania RESTful API? inizia ad imparare
|
|
Stateless, Uniform Interface, Resource Identification, Representation, HTTP Methods
|
|
|
Wyjaśnij Stateless w kontekście RESTful API inizia ad imparare
|
|
Każde żądanie od klienta do serwera musi zawierać wszystkie informacje potrzebne do zrozumienia i przetworzenia żądania.
|
|
|
Wyjaśnij Uniform Interface w kontekście RESTful API inizia ad imparare
|
|
Jednolity interfejs zapewnia, że interakcje z API są spójne i przewidywalne.
|
|
|
Wyjaśnij Resource Identification w kontekście RESTful API inizia ad imparare
|
|
Zasoby są identyfikowane przez URI.
|
|
|
Wyjaśnij Representation w kontekście RESTful API inizia ad imparare
|
|
Zasoby są reprezentowane w formatach takich jak JSON lub XML.
|
|
|
Wyjaśnij HTTP Methods w kontekście RESTful API inizia ad imparare
|
|
Używanie odpowiednich metod HTTP (GET, POST, PUT, DELETE).
|
|
|
Jakie są dobre praktyki dotyczące stronicowania wyników w API? inizia ad imparare
|
|
Limit and Offset: Używanie parametrów limit i offset (np. /users? limit=10&offset=20). Page and Size: Używanie parametrów page i size (np. /users? page=2&size=10). Metadata: Zwrot dodatkowych informacji o stronicowaniu, takich jak total_count i next_page.
|
|
|
Co to jest nagłówek Authorization? inizia ad imparare
|
|
Nagłówek Authorization jest używany do przekazywania informacji uwierzytelniających do serwera. Może zawierać tokeny uwierzytelniające, takie jak Bearer token w OAuth 2.0. Przykład: Authorization: Bearer {token}.
|
|
|
Co to jest nagłówek Content-Type? inizia ad imparare
|
|
Nagłówek Content-Type informuje serwer o formacie danych w ciele żądania. Przykłady to application/json, application/xml, multipart/form-data.
|
|
|
Co to jest nagłówek Accept? inizia ad imparare
|
|
Nagłówek Accept określa, jakie formaty odpowiedzi są akceptowane przez klienta. Przykład: Accept: application/json.
|
|
|
Co to jest nagłówek Cache-Control? inizia ad imparare
|
|
Nagłówek Cache-Control służy do kontrolowania polityki cachingu w odpowiedziach HTTP. Przykłady to Cache-Control: no-cache, Cache-Control: max-age=3600.
|
|
|
Co to jest nagłówek ETag? inizia ad imparare
|
|
Nagłówek ETag jest używany do identyfikacji specyficznej wersji zasobu. Może być używany do implementacji mechanizmów cachingu i sprawdzania zmian zasobu. Przykład: ETag: "686897696a7c876b7e".
|
|
|
Co to jest nagłówek X-Rate-Limit-Limit? inizia ad imparare
|
|
Nagłówek X-Rate-Limit-Limit informuje klienta o maksymalnej liczbie dozwolonych żądań w danym przedziale czasowym. Przykład: X-Rate-Limit-Limit: 1000.
|
|
|
Co to jest nagłówek X-Rate-Limit-Remaining? inizia ad imparare
|
|
Nagłówek X-Rate-Limit-Remaining informuje klienta o liczbie pozostałych żądań, które mogą zostać wysłane w obecnym przedziale czasowym. Przykład: X-Rate-Limit-Remaining: 750.
|
|
|
Co to jest nagłówek X-Rate-Limit-Reset? inizia ad imparare
|
|
Nagłówek X-Rate-Limit-Reset informuje klienta, kiedy limit żądań zostanie zresetowany, zazwyczaj podając czas w formacie UNIX timestamp. Przykład: X-Rate-Limit-Reset: 1597334400.
|
|
|
Co to jest nagłówek Location? inizia ad imparare
|
|
Nagłówek Location jest używany w odpowiedziach HTTP 201 (Created) oraz w redirektach (status 3xx) do wskazania URL nowo utworzonego zasobu lub miejsca, do którego klient powinien się udać. Przykład: Location: /users/123
|
|
|
Co to jest nagłówek User-Agent? inizia ad imparare
|
|
Nagłówek User-Agent zawiera informacje o kliencie wysyłającym żądanie, takie jak nazwa przeglądarki, wersja, system operacyjny.
|
|
|
Co to jest nagłówek Authorization: Basic? inizia ad imparare
|
|
Nagłówek Authorization: Basic jest używany do przekazywania poświadczeń zakodowanych w Base64. Przykład: Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=.
|
|
|
Co to jest nagłówek Access-Control-Allow-Origin z CORS? inizia ad imparare
|
|
Access-Control-Allow-Origin: Określa, które domeny mogą uzyskać dostęp do zasobów.
|
|
|
Co to jest nagłówek Access-Control-Allow-Methods z CORS? inizia ad imparare
|
|
Access-Control-Allow-Methods: Określa, które metody HTTP są dozwolone (np. GET, POST, PUT).
|
|
|
Co to jest nagłówek Content-Length? inizia ad imparare
|
|
Nagłówek Content-Length określa długość ciała żądania lub odpowiedzi w bajtach. Przykład: Content-Length: 348.
|
|
|
inizia ad imparare
|
|
Asynchronous JavaScript and XML - Technika tworzenia dynamicznych i interaktywnych aplikacji webowych poprzez asynchroniczne wymiany danych między przeglądarką a serwerem.
|
|
|