40 de întrebări și răspunsuri frecvente la interviu REST API [2023]

Un API înseamnă Interfață de programare a aplicațiilor. Acesta servește ca o poartă de acces pentru aplicații pentru a accesa unele resurse din alte aplicații.

Avantajul utilizării unui API este de a oferi acces la aplicații terțe, astfel încât acestea să nu poată accesa toate datele aplicației dvs. Aceștia pot accesa numai datele pe care le expuneți prin intermediul API-ului dvs.

Aplicația sau un utilizator care dorește să acceseze datele este cunoscut ca client, iar aplicația care servește datele este cunoscută ca server.

API-urile sunt utilizate pe scară largă astăzi în fiecare arhitectură software. Dacă aplicați pentru un rol de front-end, back-end, full-stack sau de inginerie de rețea, atunci vi se vor pune o mulțime de întrebări referitoare la API-uri.

Acestea fiind spuse, haideți să explorăm câteva dintre cele mai frecvente întrebări la interviu despre API-urile REST.

Cuprins

Ce este REST?

Răspuns: REST este un design arhitectural care definește unele constrângeri privind funcționarea API-urilor. API-urile care urmează principiile REST sunt cunoscute ca API-uri RESTful. REST înseamnă Transfer de stat reprezentativ.

Nu este un protocol sau un standard; în schimb, este o arhitectură care poate fi folosită pentru a implementa API-uri în diferite moduri.

Oferă o mare flexibilitate și libertate dezvoltatorilor și, de aceea, este utilizat pe scară largă pentru a dezvolta API-uri. Iată câteva dintre principiile unei arhitecturi REST:

  • Separarea clientului și serverului: într-un API RESTful, clientul nu ar trebui să afecteze serverul în alt mod decât să solicite date printr-un URI (identificator uniform de resurse). În același mod, serverul nu ar trebui să modifice în niciun fel conținutul clientului.
  • Apatridia: Când sunt făcute două cereri separate, ei nu știu unul despre celălalt. Cu alte cuvinte, cererile sunt apatride și nu mențin un stat. Dacă o solicitare este îndeplinită, pur și simplu se încheie. Fiecare cerere este izolată de celelalte solicitări.
  • Arhitectură stratificată: clientul sau serverul nu știe dacă cererea este făcută direct la origine sau la o aplicație intermediară. Le pasă doar de răspunsul la cerere.
  • Memorarea în cache: Datele sau răspunsul pot fi stocate în cache atât pe partea client, cât și pe server pentru a îmbunătăți performanța și scalabilitatea. Dacă există solicitări frecvente pentru o anumită resursă, atunci răspunsul la cererea respectivă poate fi stocat în cache și utilizat atunci când este necesar.

Care sunt unele caracteristici cheie ale REST?

Răspuns: Caracteristicile sau caracteristicile cheie ale REST sunt:

  • Flexibilitate: puteți trece de la un server la altul și nu se va schimba nimic, deoarece API-ul va trimite același răspuns pentru o anumită solicitare. De asemenea, puteți adăuga oricâte puncte finale doriți pentru diferite tipuri de date.
  • Scalabilitate: Memorarea în cache îmbunătățește scalabilitatea datorită faptului că răspunsurile sunt salvate pentru utilizare ulterioară. Reduce sarcina pe server și, de asemenea, reduce latența.
  • Autorizare: Cu ajutorul Headerului de autorizare, puteți specifica acreditările pe care serverul le poate folosi pentru a autoriza cererea.
  • Apatridia: Aceasta este cea mai importantă caracteristică a REST, deoarece împiedică cererile să știe ce se întâmplă cu alte solicitări. Solicitările sunt izolate și încetate imediat ce sunt îndeplinite.

Ce sunt resursele într-o arhitectură REST?

Răspuns: Resursele sunt entități asupra cărora sunt efectuate diferite operațiuni, cum ar fi preluarea, actualizarea sau ștergerea. Ele sunt elementele de bază ale arhitecturii REST.

  O dronă de pornire pentru rivalul DJI

De exemplu, dacă luați în considerare un magazin online de comerț electronic, produsele, utilizatorii, precum și metadatele sunt considerate resurse deoarece pot fi operate. Resursele pot fi transferate către o altă aplicație prin API.

Menționați câteva avantaje și dezavantaje ale unui API REST.

Răspuns: Avantajele API-urilor REST sunt următoarele:

  • Este simplu de implementat.
  • Resursele pot fi gestionate cu ușurință.
  • Este scalabil datorită arhitecturii client-server.
  • Suportă mai multe tipuri de media de transfer de date, cum ar fi XML și JSON.

Dezavantajele sale sunt:

  • Nu puteți menține o stare între cereri.
  • Adevărata sursă de origine a resursei nu poate fi cunoscută din cauza arhitecturii stratificate.
  • Nu este potrivit pentru interogări sau solicitări complexe.

Definiți șablonul REST.

Răspuns: Un șablon REST este un utilitar sau un client prin care puteți accesa API-urile REST în cadrul Spring. Practic ascunde codul standard pe care poate fi necesar să îl scrieți pentru a solicita o resursă de la un API REST.

Ce este RESTful?

Răspuns: API-urile sau serviciile RESTful sunt interfețe care implementează stilul arhitectural REST (Representational State Transfer) și funcționează folosind protocoale precum HTTP.

Ce sunt serviciile web RESTful?

Răspuns: Serviciile web RESTful sunt create pentru a funcționa cel mai bine pe web. Transferul de stat reprezentativ (REST) ​​este un stil arhitectural care specifică constrângeri, cum ar fi interfața uniformă, arhitectura stratificată și apatridia, dacă sunt aplicate unui serviciu web, induc proprietăți dezirabile, cum ar fi performanța și scalabilitatea, care permit serviciilor să funcționeze cel mai bine. internetul.

Cum puteți testa serviciile web RESTful?

Răspuns: Pentru a testa un serviciu web RESTful, puteți utiliza un client REST, cum ar fi Postman sau Thunder Client, și puteți interoga serviciul web pe care doriți să-l testați. Apoi, când primiți un răspuns, înțelegeți răspunsul; asta e partea cheie.

Dacă doriți să testați un API complex cu mai multe puncte finale, poate fi necesar să descompuneți testarea și să efectuați testare unitară, testare de integrare, testare de performanță și testare end-to-end.

Menționați câteva caracteristici ale serviciilor web RESTful.

Răspuns: Unele dintre caracteristicile cheie ale serviciilor web RESTful sunt:

  • Suport pentru mai multe tipuri de media, cum ar fi JSON și XML.
  • Scalabilitate
  • Izolarea client și server
  • Flexibilitate

Definiți clasele de resurse rădăcină RESTful.

Răspuns: Clasele de resurse rădăcină sunt „obiecte Java vechi simple” (POJO) care sunt fie adnotate cu @Path, fie au cel puțin o metodă adnotată cu @Path sau un desemnator de metodă de solicitare, cum ar fi @GET, @POST, @PUT sau @ȘTERGE.

Ce este URI?

Răspuns: URI înseamnă Uniform Resource Identifier. Este o secvență de caractere folosită pentru a localiza sau identifica resursele unui API sau unui serviciu. Folosește numele sau locația resursei pentru a o identifica, dar nu se bazează pe o anumită metodă sau tehnică.

Ce este apatridia în REST?

Răspuns: Apatridia se referă la o constrângere aplicată unui API în care orice două solicitări nu pot ști ce se întâmplă una cu cealaltă. Cu alte cuvinte, starea cererilor nu este menținută. Dacă cererea este îndeplinită, pur și simplu se încheie după primirea unui răspuns.

Ce este JAX-RS?

Răspuns: JAX-RS este un API Java care vă permite să dezvoltați aplicații în Java care utilizează arhitectura REST. Acest API facilitează dezvoltarea aplicațiilor REST în Java.

Care sunt adnotările cheie în API-ul JAX-RS?

Răspuns: Adnotările din JAX-RS sunt folosite de dezvoltatori pentru a decora clasele Java pentru a defini resursele și metodele care pot fi efectuate pe acele resurse. Unele adnotări cheie ale API-ului JAX-RS sunt:

  • @GET: este folosit pentru a face cereri GET în HTTP.
  • @POST: Este folosit pentru a face cereri POST în HTTP.
  • @Path: se referă la calea relativă a unei clase Java.
  • @QueryParam: se referă la parametrii de interogare ai URI-ului sau URL-ului.

Care sunt câteva caracteristici cheie ale API-ului JAX-RS?

Răspuns: Caracteristicile JAX-RS sunt:

  • Memorarea în cache pe partea clientului
  • Memorarea în cache pe partea serverului
  • Personalizare șir de interogare
  • Adnotări de rulare

Cum pot fi configurate aplicațiile JAX-RS?

Răspuns: O aplicație JAX-RS constă din cel puțin o clasă de resurse ambalata într-un fișier WAR. URI-ul de bază de la care resursele unei aplicații răspund la solicitări poate fi setat în unul din două moduri:

  • Folosind adnotarea @ApplicationPath într-o subclasă de javax.ws.rs.core.Application ambalată în WAR
  • Utilizarea etichetei servlet-mapping în descriptorul de implementare web.xml al WAR

Ce sunt JAX-WS și JAX-RS?

Răspuns: JAX-WS este un API Jakarta XML Web Services utilizat pentru dezvoltarea API-urilor folosind Simple Object Access Protocol (SOAP) – un protocol de mesagerie bazat pe XML.

Pe de altă parte, JAX-RS este un API Java folosit pentru crearea de servicii web folosind arhitectura REST.

  Cum să convertiți imaginile din modul CMYK în modul RGB în Photoshop

Ce sunt codurile de stare HTTP?

Răspuns: Codurile de stare nu sunt altceva decât o modalitate de a comunica starea răspunsului trimis de server către client. Ele sunt prezente în anteturile de răspuns trimise de server.

Clientul își poate da seama dacă cererea a eșuat sau a fost îndeplinită sau dacă există ceva în neregulă cu răspunsul utilizând codurile de stare.

Iată câteva coduri de stare comune ale HTTP:-

  • 200 – reprezintă cuvântul cheie „OK”. Înseamnă că cererea a fost îndeplinită și răspunsul este în regulă.
  • 404 – înseamnă „Negăsit”. Aceasta înseamnă că o resursă nu este prezentă pe server sau un punct final nu există.
  • 500 – înseamnă „Internal Server Error”. Acest lucru se întâmplă de obicei atunci când serverul nu poate genera răspunsul corect sau există o eroare care nu este aruncată în mod explicit.
  • 503 – înseamnă „Serviciul indisponibil”. Înseamnă că în prezent, serverul nu poate procesa nicio solicitare, probabil pentru că este mort sau nu funcționează din cauza supraîncărcării cererilor. Poate apărea și atunci când serverul este pregătit pentru întreținere.

Ce sunt metodele HTTP?

Răspuns: Metodele HTTP sunt folosite pentru a efectua un anumit tip de acțiune pe o anumită resursă a unui API. De exemplu, dacă doriți să preluați o listă de filme dintr-un API de colecție de filme, atunci puteți utiliza metoda GET furnizată de HTTP. Dacă doriți să actualizați datele, puteți utiliza metoda POST furnizată de HTTP.

Metodele HTTP utilizate frecvent sunt următoarele:

  • GET: Solicitările care utilizează GET ar trebui să recupereze numai date.
  • POST: Actualizează resursa trimițând o resursă nou actualizată către server.
  • DELETE: Șterge resursa specificată.
  • PATCH: Modifică parțial resursa.

Cum funcționează autentificarea de bază HTTP?

Răspuns: Autentificarea este un proces de verificare a autenticității unui client pentru a menține securitatea datelor. În HTTP, autentificarea funcționează printr-un antet de autorizare, care este trimis de client.

Antetul de autorizare constă din numele de utilizator/id-ul și parola clientului, care sunt apoi verificate de server și accesul este acordat.

Un lucru important de reținut aici este că atunci când utilizați autentificarea HTTP, canalul prin care trec acreditările ar trebui să fie criptat și securizat.

Puteți securiza canalul folosind stratul SSL, care este integrat în HTTPS. Prin urmare, este recomandat să utilizați HTTPS în loc de HTTP simplu atunci când aveți de-a face cu acreditările.

Care sunt componentele de bază ale solicitării HTTP?

Răspuns: O solicitare HTTP constă din următoarele componente:

  • Linia de solicitare: este prima linie din orice solicitare și constă din metoda HTTP, calea sau punctul final și numărul versiunii HTTP.
  • Antete: anteturile HTTP sunt folosite pentru a furniza metadatele cererii.
  • Corp (Opțional): Această componentă este prezentă doar pentru unele dintre metodele de solicitare. Nu este necesar pentru solicitările GET, dar este necesar pentru solicitările POST. Este mesajul propriu-zis al cererii.

Care sunt componentele de bază ale răspunsului HTTP?

Răspuns: Un răspuns HTTP constă din următoarele componente:

  • Stare: se referă la codul de stare HTTP care este trimis de server.
  • Antete: la fel ca și cererile, răspunsurile au și antetele lor, care oferă informații utile despre răspuns.
  • Mesaj: Acestea sunt datele reale care sunt trimise de server către client pentru a solicita o anumită resursă.

Care este diferența dintre REST și AJAX?

Răspuns: AJAX este un client prin care puteți accesa API-urile RESTful. Este folosit pentru a trimite cereri asincrone folosind JavaScript.

REST, sau Representational State Transfer, este o arhitectură care poate fi implementată pentru a crea API-uri RESTful. Pe scurt, pentru a trimite cereri HTTP, puteți folosi AJAX care servește ca client, dar dacă doriți să implementați API-uri RESTful, atunci trebuie să utilizați arhitectura REST.

Care este diferența dintre SOAP și REST?

Răspuns: Transferul de stat reprezentativ, sau REST, este o arhitectură cu constrângeri minime pentru a crea API-uri. SOAP, sau Simple Object Access Protocol, este un protocol cu ​​cerințe stricte pentru implementarea unui API.

REST este mai flexibil și mai ușor de utilizat decât SOAP. Mesageria bazată pe XML este folosită în SOAP, în timp ce în REST, puteți utiliza multe tipuri de transfer de date, cum ar fi JSON, XML etc. În comparație cu SOAP, REST este mai ușor și mai rapid.

Serviciile web SOAP au securitate încorporată, care este unul dintre avantajele utilizării SOAP față de REST, dar caracteristicile adăugate îl fac, de asemenea, complex și greu de utilizat.

Care este diferența dintre PUT și POST?

Răspuns: POST este o metodă de solicitare HTTP care trimite unele date către server. Dacă faceți mai multe solicitări POST pentru o anumită resursă, atunci pot exista efecte secundare asupra datelor dvs. De exemplu, dacă doriți să adăugați un articol la o colecție, dacă faceți mai multe solicitări POST, mai multe articole vor fi adăugate la colecție, ducând la articole redundante.

  Cele mai bune 10 site-uri pentru a învăța limbi noi

PUT este o metodă de solicitare HTTP care trimite date către server pentru o anumită resursă, dar actualizează datele o singură dată. Dacă trimiteți mai multe solicitări PUT pentru o anumită resursă, nu vor apărea efecte secundare, iar datele vor fi adăugate o singură dată. În PUT, dacă resursa nu există, va crea una nouă, iar dacă există, o va actualiza pe cea existentă.

PUT este idempotent, în timp ce POST nu este.

Ce este o sarcină utilă?

Răspuns: O sarcină utilă într-un API REST este pur și simplu corpul cererii trimise de la client la server. Sunt datele pe care doriți să le trimiteți către server și să primiți un răspuns.

Care este dimensiunea maximă a încărcăturii utile care poate fi trimisă în metodele de postare?

Răspuns: Nu există nicio limită implicită stabilită de protocolul HTTP însuși. Limita poate depinde de limita maximă a clientului sau a serverului, oricare dintre acestea este minimă.

În timpul creării URI, care sunt cele mai bune practici care trebuie urmate?

Răspuns: Unele dintre punctele cheie pe care trebuie să le țineți cont atunci când proiectați URI-uri sunt:

  • Evitați utilizarea extensiilor de fișiere
  • Fii consecvent cu toate URI-urile
  • Împărțiți URI-urile în domenii și subdomenii pentru diferite seturi de resurse
  • Ar trebui să utilizați cratima sau sublinierea pentru a separa cuvintele din propozițiile încorporate în URI
  • Ar trebui să utilizați bara oblică pentru a indica o ierarhie de resurse
  • Codați un URI folosind codificarea adecvată
  • Încercați să faceți URI-ul lizibil de către om

Ce sunt metodele idempotente?

Răspuns: Metodele HTTP idempotente au același efect asupra serverului, în ciuda trimiterii mai multor solicitări identice. De exemplu, dacă trimiteți mai multe solicitări DELETE identice pentru o anumită resursă, resursa nu se va modifica la fiecare cerere; se va actualiza ca și cum ar fi fost trimisă o singură cerere.

Unele dintre metodele idempotente includ:

  • A PUNE
  • ȘTERGE
  • OBȚINE
  • CAP
  • OPȚIUNI

Ce este Poștașul?

Răspuns: Postman este un instrument de dezvoltare API pentru dezvoltarea, modificarea și testarea API-urilor. Oferă multe caracteristici pentru a construi și testa rapid API-uri, fără a fi nevoie să configurați un client.

Răspuns: Antetul Cache-Control constă în instrucțiuni sau directive pentru a configura stocarea în cache în browsere și servere. Spune browserului sau serverului ce să memoreze în cache și cât timp ar trebui să fie memorat în cache înainte de a fi solicitat prin cererea de rețea.

Antetul Cache-Control include următoarele directive:-

  • varsta maxima
  • fără cache
  • privat
  • public
  • fără magazin
  • imuabil

Definiți mesageria în serviciile web RESTful.

Răspuns: Mesajele în serviciile web RESTful se referă la trimiterea de către client a unei cereri HTTP către server, la care serverul răspunde cu un răspuns HTTP. Această comunicare între client și server este denumită mesagerie.

Care este diferența dintre arhitectura monolitică, SOA și microservicii?

Răspuns: Într-o arhitectură monolitică, totul este gestionat într-un singur loc. Partea client, serverul, precum și baza de date sunt toate gestionate dintr-un singur loc. De aceea este cunoscut ca monolit deoarece cuvântul „monolit” se referă la un singur bloc sau piatră.

SOA înseamnă arhitectură orientată pe servicii. În această arhitectură, diferite aspecte ale aplicației sunt gestionate de diferite servicii, care sunt și software. Deci, este o combinație de mai multe module software de servicii. Integrarea este partea cheie a acestei arhitecturi.

Arhitectura microserviciilor este similară cu SOA, dar spre deosebire de SOA, are mai multe programe software autonome care comunică între ele folosind API-uri. Spre deosebire de arhitectura monolitică, totul aici este autonom și, într-o oarecare măsură, independent.

Cum funcționează arhitectura de microservicii?

Răspuns: Într-o arhitectură de microservicii, aplicațiile sunt împărțite în subunități mai mici care sunt independente unele de altele și funcționează singure, dar comunică între ele printr-un set bine definit de API-uri.

Unele beneficii ale arhitecturii de microservicii includ agilitate, flexibilitate, scalabilitate, tehnologii independente, servicii reutilizabile și implementare ușoară.

Ce este CRUD?

Răspuns: CRUD înseamnă Create, Read, Update, Delete. Acestea sunt operațiunile care pot fi efectuate pe o anumită resursă. API-ul care acceptă toate aceste operațiuni este cunoscut sub numele de API CRUD. Acestea sunt cele mai de bază operațiuni care pot fi efectuate de un API pe o resursă.

Ce este caching-ul?

Răspuns: Memorarea în cache este o tehnică de stocare a unui răspuns sau a unei cereri pe client sau pe server pentru ca acesta să fie folosit din nou mai târziu.

Răspunsurile sunt, în general, stocate în cache pe client, deoarece, dacă clientul face aceeași cerere de mai multe ori într-un interval scurt de timp, atunci nu are sens să solicitați din nou răspunsul prin rețea și să irosim lățimea de bandă.

La ce folosește @RequestMapping?

Răspuns: Este o adnotare în cadrul Spring, care este folosită pentru a mapa cererile web pe anumite clase de handler și/sau metode de handler.

Ce face @PathVariable?

Răspuns: Adnotarea @PathVariable din cadrul Spring este utilizată pentru a extrage valoarea variabilelor șablon și a atribui valoarea acestora unei variabile de metodă.

Definiți HttpMessageConverter.

Răspuns: Când o solicitare HTTP (sau porțiuni din ea) trebuie convertită într-un tip necesar ca argument pentru o metodă de gestionare sau atunci când valoarea returnată de o metodă de gestionare trebuie convertită într-un fel pentru a crea un răspuns HTTP, HTTP se folosesc convertoare de mesaje.

Răspuns: Unele instrumente care vă pot ajuta în testarea API sunt următoarele:

  • Poştaş
  • Fiți siguri
  • Rest Sharp
  • Katalon
  • ReadyAPI
  • Apigee

Cuvinte finale

În zilele noastre, API-urile au devenit extrem de populare datorită apariției internetului. Un alt motiv pentru care API-urile REST sunt populare este că sunt ușor de dezvoltat și ușor de utilizat.

Dacă vă pregătiți pentru un interviu, luați în considerare întrebările de mai sus despre API-urile REST care ar putea fi adresate în interviul dvs.

Apoi, puteți verifica cum să răzuiți un site web folosind API-ul Web Scraping de la tipstrick.ro.