Inhoudsopgave[Zich verstoppen][Laten zien]
- 1. Wat versta je onder REST?
- 2. Wat bedoel je met REST API?
- 3. Wat is URI precies?
- 4. Wat zijn de kenmerken van RESTful Web Services?
- 5. Wat zijn de leidende principes van REST?
- 6. Noem de HTTP-methoden die REST ondersteunt.
- 7. Beschrijf de beperkingen die worden opgelegd door een consistente interface.
- 8. Wat is een REST-resource precies?
- 9. Wat betekent JAX-RS voor u?
- 10. Wat onderscheidt AJAX en REST van elkaar?
- 11. Kun je enkele nadelen van RESTful-webservices opsommen?
- 12. Wat onderscheidt PUT- en POST-technieken van elkaar?
- 13. Hoe test je RESTful webservices?
- 14. Beschrijf een REST API in de echte wereld.
- 15. Hoe werkt microservice-architectuur?
- 16. Wat is cachen precies?
- 17. Beschrijf de lading.
- 18. Onderscheid SOAP versus REST?
- 19. Kan het transportlaagbeveiligingsprotocol (TLS) worden gebruikt met REST?
- 20. Idempotente methoden: wat zijn dat? Hoe is het van toepassing op de wereld van RESTful webservices?
- 21. Wat is de functionaliteit van HTTP Basic Authentication?
- 22. Denkt u dat GraphQL de beste keuze is voor het creëren van microservice-architectuur?
- 23. Wat zijn de belangrijkste verschillen tussen de veilige en idempotente HTTP-methoden?
- 24. Wat houdt de JAX-RS API in voor RESTful Root Resource Classes?
- 25. Wat is Postman precies en waarom wordt het gebruikt?
- 26. Hoe worden REST API's beveiligd?
- Conclusie
De evolutie van REST heeft API's ongelooflijk toegankelijk gemaakt en tegelijkertijd hun volledige kracht en potentieel onthuld. REST API's zijn eenvoudig te maken en te cachen vanwege hun resource-georiënteerde architectuur.
Bovendien waren RESTful API's door de tijd heen de voorlopers van andere belangrijke ontwikkelingen, zoals cloud computing en op microservices gebaseerd ontwerp.
Het zou daarom geen verrassing moeten zijn dat er tegenwoordig veel vraag is naar REST API-ontwikkelaars, gezien de manier waarop ze bedrijven die RESTful-services gebruiken een concurrentievoordeel bieden. REST API's zijn een populaire ontwerptrend.
Veel IT-bedrijven willen REST API-kennis van software-ontwikkelaars en vraag ernaar in technische interviews.
Hier zijn enkele van de meest typische REST API-interviewvragen die u zullen helpen klaar te zijn voor interviews bij verschillende bedrijven als u op het gebied van REST API-ontwikkeling wilt werken.
1. Wat versta je onder REST?
REST is een architectonisch paradigma voor het ontwerpen van webgebaseerde applicaties die zijn gebaseerd op het Hypertext Transfer Protocol (HTTP).
REST definieert bepaalde normen waaraan webservices moeten voldoen om als REST te worden beschouwd. Deze aanbevelingen garanderen dat verzoeken en bronnen snel en effectief tussen client en server worden verzonden met behulp van gestandaardiseerde HTTP-protocollen.
2. Wat bedoel je met REST API?
Een software-naar-software-koppeling die bekend staat als een applicatie-programmeerinterface maakt communicatie en het delen van gegevens mogelijk tussen anders onafhankelijke programma's. Een nieuwswebsite zou bijvoorbeeld de Twitter API kunnen gebruiken om relevante tweets automatisch te ontdekken en te integreren in nieuwsberichten.
Een API die voldoet aan REST-principes staat bekend als een REST API, ook wel bekend als een RESTful API. In een REST API wordt elk stuk gegevens behandeld als een resource en krijgt het een afzonderlijke standaard resource-identiteit (URI).
De Twitter API maakt bijvoorbeeld van elke tweet een opvraagbare bron die beschikbaar is voor klanten. De Twitter API kan door gebruikers worden gebruikt om tweets te plaatsen en andere websitetaken uit te voeren.
3. Wat is URI precies?
A computer netwerk resource kan worden verwezen met behulp van een URI of uniform resource-ID. Het dient als een middel om de ene bron van de andere te scheiden. De bronnen kunnen al dan niet online zijn.
Vanwege hun standaardstructuur maken URI's het eenvoudig om verbinding te maken met zelfs verschillende soorten bronnen. De locatie of naam van de bron wordt samen met een reeks tekens in URI's opgenomen.
De URI bestaat uit een pad, schema, query en andere elementen, maar bevat niet het protocol.
Met behulp van een protocol worden URL's (Uniform Resource Locators) gebruikt om bronnen op internet of via internet te vinden.
4. Wat zijn de kenmerken van RESTful Web Services?
- Het Client-Server paradigma is de basis van de service.
- De service heeft toegang tot bronnen via URI's.
- De service maakt gebruik van het HTTP-protocol om gegevens/bronnen te verkrijgen, query's uit te voeren en andere taken uit te voeren.
- Messaging is de naam van de methode die wordt gebruikt om te communiceren tussen de client en de server.
- Deze services kunnen ook het REST-architectuurpatroon implementeren met behulp van SOAP-services.
- Om serveroproepen voor hetzelfde soort herhaalde verzoeken te verminderen, gebruiken deze services ook het idee van caching.
5. Wat zijn de leidende principes van REST?
REST API's moeten aan vijf criteria voldoen:
Client-server ontkoppeling: Er kan alleen een reeks verzoeken en antwoorden worden gebruikt om te communiceren tussen de client en de server. Alleen clients en servers kunnen respectievelijk verzoeken en antwoorden verzenden. Dit eenvoudige idee stelt beide partijen in staat om onafhankelijk van elkaar te functioneren.
Uniforme interface: Er moet een uniform protocol zijn voor alle client-serververbindingen. Dit protocol voor REST is HTTP. Omdat elke applicatie gegevens opvraagt en verzendt in dezelfde taal, maakt een consistente interface integraties eenvoudiger.
Staatloos: de server slaat geen records op van eerdere verzoeken of antwoorden in staatloze communicatie. Elk verzoek en elk antwoord bevatten alle details die nodig zijn om de uitwisseling te voltooien. Stateless communicatie verhoogt de snelheid, bespaart geheugen en vermindert de belasting van de server. Bovendien wordt voorkomen dat een aanvraag mislukt vanwege onvolledige gegevens.
Gelaagd systeem: servers die zich tussen de client en de API-server bevinden, worden lagen genoemd. Deze extra servers voeren verschillende diensten uit, zoals het detecteren van spam en het optimaliseren van de snelheid. Lagen in REST zijn modulair, wat betekent dat ze kunnen worden toegevoegd en verwijderd zonder de communicatie tussen de client en de API-server te beïnvloeden.
Cacheable: Clients kunnen alle bronnen cachen om de snelheid te verhogen als serverantwoorden aangeven of de bron cachebaar is of niet.
Codering op aanvraag: als reactie hierop kan een API uitvoerbare computercode naar klanten verzenden. De clienttoepassing kan de code vervolgens op zijn eigen back-end uitvoeren.
6. Noem de HTTP-methoden die REST ondersteunt.
De HTTP-methoden die REST ondersteunt zijn:
- GET: Deze methode vraagt om een bron op de opgegeven URL. Een aanvraagtekst mag niet worden opgenomen omdat deze wordt genegeerd. Het kan mogelijk zijn om het lokaal of op de server te cachen.
- POST: deze methode verzendt gegevens naar een service voor verwerking en de service zou normaal gesproken een nieuwe of gewijzigde bron moeten retourneren.
- PUT: De bron wordt bijgewerkt op de verzoek-URL.
- VERWIJDEREN: De bron wordt verwijderd op de verzoek-URL.
- Opties: Het identificeert de ondersteunde methoden.
- HEAD: De metadata van de verzoek-URL worden geretourneerd.
7. Beschrijf de beperkingen die worden opgelegd door een consistente interface.
Om de client van de server te scheiden, is een consistente interface vereist.
Om een consistente interface te bereiken, zijn de volgende vier beperkingen vereist:
- Resource-identificatie: Clientverzoeken moeten standaard resource-ID's gebruiken om resources (URI's) te identificeren
- Manipulatie van bronnen met behulp van deze representaties: Clients hebben alle informatie die nodig is om de resourcestatus te kunnen wijzigen wanneer ze een resourcerepresentatie van de server krijgen.
- Zelfbeschrijvende berichten: berichten bevatten alle metadata en andere informatie die de ontvanger nodig heeft om ze te begrijpen.
- Hypermedia als applicatiestatusengine: het kanaal voor client-servercommunicatie is hypermedia, zoals HTML, en clients hebben geen API-specifieke documentatie nodig om serverantwoorden te begrijpen.
8. Wat is een REST-resource precies?
Resources zijn de fundamentele componenten van een RESTful-webservice in een REST-architectuur. Ze bevatten alle cruciale informatie die een API-client nodig heeft om toegang te krijgen.
Elk type bron, zoals een HTML-pagina, een afbeelding, een video of iets anders dat nodig is voor een API-activiteit, is toegankelijk via de server in een client-serversysteem.
De middelen worden geïdentificeerd door een Uniform Resource Identifier. Tekst, JSON of XML zijn allemaal acceptabele weergaven van bronnen. Dat gezegd hebbende, zijn er geen beperkingen aan het formaat van de weergave.
9. Wat betekent JAX-RS voor u?
Het is eenvoudiger om RESTful webservices in Java te maken dankzij de Java API voor RESTful webservices, ook wel bekend als JAX-RS. Ontwikkelaars kunnen bronnen en de bewerkingen die erop kunnen worden uitgevoerd beschrijven met behulp van de verstrekte annotaties.
10. Wat onderscheidt AJAX en REST van elkaar?
Ajax:
- Ajax is een groep technologieën die het dynamisch bijwerken van gebruikersinterface elementen zonder de pagina opnieuw te hoeven laden.
- Ajax verwijdert asynchrone communicatie tussen de client en de server.
RUST UIT:
- REST vereist communicatie tussen de server en de client.
- Het gebruik van resources is belangrijk voor de URL-structuur en het request/response-patroon dat door REST wordt gebruikt.
11. Kun je enkele nadelen van RESTful-webservices opsommen?
Sessies kunnen niet worden volgehouden omdat de diensten zich houden aan het begrip staatloosheid. (De klant is verantwoordelijk voor het doorgeven van de sessie-ID tijdens de simulatie van de sessie.)
Beveiligingsbeperkingen zijn niet fundamenteel voor REST. De protocollen die het gebruiken, erven de veiligheidsmaatregelen. Daarom is het belangrijk om voorzichtig te zijn bij het nemen van beveiligingsmaatregelen, zoals het integreren van op SSL/TLS gebaseerde authenticaties.
12. Wat onderscheidt PUT- en POST-technieken van elkaar?
ZETTEN:
- Er is geen cache voor PUT-antwoorden.
- Idempotent (meerdere verzoeken geven hetzelfde resultaat)
- de payload van het verzoek wordt bijgewerkt of vervangt de doelbron.
POST:
- idempotent niet (dwz meerdere verzoeken zullen veelvouden van dezelfde bron opleveren)
- De webserver verwerkt de payload van het verzoek op basis van de beoogde bron.
- Als de juiste cache-control-header is opgenomen, kunnen POST-antwoorden in de cache worden opgeslagen.
13. Hoe test je RESTful webservices?
Het testen van RESTful-webservices kan worden ondersteund door een aantal tools, waaronder Swagger en Postman. Het inspecteren van verzoekparameters zoals queryparameters, headers en responsheaders wordt mogelijk gemaakt door de overvloed aan functies van laatstgenoemde.
Postman kan worden gebruikt om verzoeken aan eindpunten te doen en de resultaten te tonen. En op basis van deze antwoorden kunnen XML en JSON worden gemaakt.
Postman en Swagger bieden beide zeer vergelijkbare functionaliteiten. Aan de andere kant biedt Swagger ook mogelijkheden zoals eindpuntdocumentatie.
14. Beschrijf een REST API in de echte wereld.
- Websites voor reizen en tickets kunnen gebruikmaken van de vluchttijden en prijzen die luchtvaartmaatschappijen beschikbaar stellen via API's.
- Om ervoor te zorgen dat kaart- en navigatie-apps (zoals Google Maps) ze kunnen gebruiken, maken OV-agentschappen hun gegevens vaak in realtime openbaar beschikbaar via API's.
- Weertoepassingen gebruiken open API's die weergegevens uitwisselen om weersinformatie weer te geven.
- Ontwikkelaars hebben toegang tot de kaartgegevens van Google Maps via een aantal van de gehoste API's. Deze API's worden door ontwikkelaars gebruikt om dynamische kaarten in hun apps en websites in te sluiten.
15. Hoe werkt microservice-architectuur?
- Verzoeken worden door verschillende klanten met verschillende apparaten verzonden.
- Na het bevestigen van de identiteit van de klanten, bieden identiteitsproviders beveiligingstokens.
- De clientverzoeken worden beheerd door API Gateway.
- Al het materiaal van het systeem wordt bewaard als statische inhoud.
- De beheertool controleert de balans van services op knooppunten en eventuele fouten.
- Het ontdekken van het pad van communicatie tussen microservices wordt geholpen door service discovery.
- Datacenters en proxyservers vormen verspreide netwerksystemen die content delivery-netwerken worden genoemd.
- Remote services bieden toegang tot informatie op afstand.
16. Wat is cachen precies?
De praktijk om tijdelijk een kopie van een serverantwoord ergens te bewaren (zoals computergeheugen) om er later sneller toegang toe te krijgen, staat bekend als caching.
Caching verbetert de serversnelheid bij het gebruik van REST API's door de hoeveelheid werk die de server moet doen om aan het verzoek te voldoen, te verminderen. Applicaties die gebruikmaken van de API werken sneller dankzij caching, omdat ze niet elke keer dat ze een resource nodig hebben een nieuw verzoek hoeven in te dienen.
Het veld Cache-Control van de HTTP-responsheader bevat informatie over hoe lang een resource door de client in de cache kan worden opgeslagen voordat deze opnieuw moet worden geopend.
17. Beschrijf de lading.
De payload in REST verwijst naar de informatie in de hoofdtekst van het HTTP-antwoord. De klant heeft de GET-techniek gebruikt om de betreffende gegevens op te vragen.
Het document met de tweettekst en eventuele bestanden die nodig zijn om de tweet op een website te plaatsen, worden opgenomen in de payload, bijvoorbeeld als u de Twitter API om een specifieke tweet vraagt. Bovendien kan de payload worden opgenomen in het HTTP-verzoek met behulp van de POST-methode.
18. Onderscheiden SOAP versus REST?
- In tegenstelling tot SOAP, dat alleen XML kan verwerken, maakt REST een breder scala aan resourceformaten mogelijk, waaronder XML, tekst, HTML, afbeeldingen, video en meer.
- Wanneer beveiliging cruciaal is voor online toepassingen, is SOAP nuttig. REST kan niet worden gebruikt wanneer transacties veilig moeten worden voltooid, omdat het niet bijzonder veilig is.
- Aangezien SOAP slechts een protocol is, kan REST het in zijn webservices gebruiken, maar niet andersom.
- Hoewel REST slechts een architectonisch patroon is dat wordt gebruikt om webservices te ontwikkelen en zich aan bepaalde beperkingen houdt, zoals client-serverconfiguratie, staatloosheid, cachebare respons, gelaagde systemen en consistente interface, is SOAP een protocol dat werkt volgens bepaalde normen die strikt moeten worden nageleefd tot.
- Terwijl REST Universal Resource Identifiers (URI's) gebruikt, gebruikt SOAP service-interfaces om zijn mogelijkheden aan clienttoepassingen te leveren. REST heeft een lagere bandbreedtebehoefte dan SOAP, omdat SOAP-berichten meer informatie-intensief zijn.
19. Kan het transportlaagbeveiligingsprotocol (TLS) worden gebruikt met REST?
Sterker nog, we kunnen het. De communicatie van de REST-client en de server is versleuteld via TLS en het protocol geeft clients ook een manier om servers te authenticeren.
Omdat het de vervanger van Secure Socket Layer is, wordt het gebruikt voor beveiligde communicatie (SSL). Het implementeren van RESTful webservices is succesvol met HTTPS omdat het effectief samenwerkt met zowel TLS als SSL.
De REST erft de kenmerken van het protocol dat het implementeert, wat hier een ding is om op te merken. Als gevolg hiervan zijn beveiligingsbeveiligingen afhankelijk van het protocol dat REST gebruikt.
20. Idempotente methoden: wat zijn dat? Hoe is het van toepassing op de wereld van RESTful webservices?
Wanneer de URI hetzelfde is, hebben sommige HTTP-methoden in een aanvraag dezelfde impact op de server, of ze nu een of meerdere keren worden afgeleverd. Idempotente technieken zijn wat deze worden genoemd.
Het maakt bijvoorbeeld niet uit hoe vaak een URI met behulp van de GET-methode wordt uitgevoerd, de server zal altijd hetzelfde resultaat ervaren. Idempotente methoden omvatten GET, PUT en PATCH, om er maar een paar te noemen.
Idempotente HTTP-methoden zijn enkele van degenen die worden gebruikt door RESTful Webapplicaties. Ze zijn nodig om consistentie in de activiteiten van de RESTful webservices te garanderen.
Klanten die REST-API's gebruiken, kunnen codefouten maken waardoor een REST-API per ongeluk herhaalde verzoeken moet doen. Deze oproepen kunnen middelen misbruiken.
21. Wat is de functionaliteit van HTTP Basic Authentication?
Bij gebruik van basisverificatie als onderdeel van API's, moet de gebruiker de gebruikersnaam en het wachtwoord invoeren, die door de browser worden samengevoegd in de vorm "gebruikersnaam: wachtwoord" en base64-gecodeerd.
Bij elk HTTP-verzoek van de browser wordt de gecodeerde waarde geleverd als de waarde voor de header "Autorisatie". Omdat de inloggegevens alleen gecodeerd zijn, wordt het aanbevolen om dit formulier te gebruiken bij het verzenden van HTTPS-verzoeken, omdat ze niet veilig zijn en door iedereen kunnen worden onderschept als er geen beveiligingsprotocollen worden gebruikt.
22. Denkt u dat GraphQL de beste keuze is voor het creëren van microservice-architectuur?
Microservices en GraphQL gaan perfect samen omdat GraphQL uw microservice-architectuur geheim houdt voor uw klanten.
Vanaf de front-end wilt u dat al uw gegevens uit één enkele API komen, terwijl u vanaf de back-end deze wilt verdelen in microservices. De beste techniek die ik ken om beide te bereiken, is door GraphQL te gebruiken.
Het stelt je in staat om je backend op te delen in microservices, terwijl je elke applicatie toch een enkele API geeft en joins tussen gegevens van verschillende services mogelijk maakt.
23. Wat zijn de belangrijkste verschillen tussen de veilige en idempotente HTTP-methoden?
Idempotente methoden produceren hetzelfde resultaat wanneer ze een of meerdere keren worden aangeroepen via hetzelfde verzoek. De PUT-methode is idempotent.
Alle veilige manieren zijn idempotent, maar niet alle idempotent-methoden zijn veilig, omdat veilige methoden de bronnen niet veranderen. GET is bijvoorbeeld veilig omdat het alleen gegevens ophaalt en de bron niet verandert.
Bovendien is het idempotent, wat betekent dat het altijd hetzelfde antwoord zal retourneren wanneer het wordt aangeroepen.
24. Wat houdt de JAX-RS API in voor RESTful Root Resource Classes?
De Java Enterprise Edition biedt klassen en interfaces die voldoen aan de JAX-RS API-vereisten. Met behulp van JAX-RS wordt het maken van Java-webservices in de REST-bouwstijl eenvoudiger.
In de JAX-RS API zijn root-resourceklassen gewoon "gewone oude Java-objecten" of POJO. Om de nodige webbronnen te implementeren, gebruiken ze JAX-RS-annotaties.
Ze hebben ofwel @path-annotaties of ten minste één van hun methoden heeft @path-annotaties. Ze kunnen worden samengevat als Java-klassen met methoden voor het omgaan met API-eindpunten.
25. Wat is Postman precies en waarom wordt het gebruikt?
Een API-ontwikkeltool genaamd Postman wordt gebruikt om API's te maken, testen en wijzigen. Deze tool kan door ontwikkelaars worden gebruikt voor elke functie die ze nodig hebben voor een API. Het vereenvoudigt en vergemakkelijkt het werk van ontwikkelaars.
Postman maakt het gemakkelijk om verschillende HTTP-query's te maken, waaronder GET, POST, PUT en PATCH, omgevingen op te slaan voor later gebruik en API's om te zetten naar code in een aantal verschillende talen.
Elke fase van de API-cyclus wordt eenvoudiger gemaakt met Postman en de samenwerking wordt gestroomlijnd voor snellere API-ontwikkeling.
Bovendien kunnen ontwikkelaars de documentatie, specificaties, testcases, processen en API-catalogi beheren.
26. Hoe worden REST API's beveiligd?
Aangezien REST-API's niet zo rigoureuze beveiligingsmaatregelen gebruiken als SOAP-API's, mogen er geen gevoelige gegevens worden verzonden of opgehaald.
Betrouwbare REST-API's blijven echter beveiligingscontroles integreren voor veilige en betrouwbare gegevensoverdracht.
- Authenticatie en autorisatie: elk verzoek dat aan de API wordt gedaan, moet deze twee controles doorstaan. Het verifiëren van de identiteit van de klant door middel van authenticatie en het valideren dat deze gemachtigd is om toegang te krijgen tot de gevraagde bronnen door middel van autorisatie zijn twee verschillende processen.
- Validatie: Voordat de API toegang verleent tot zijn bronnen, moeten verzoeken na authenticatie en autorisatie nog worden gecontroleerd op mogelijk schadelijke code. Een server zou dus openstaan voor een injectieaanval.
- Validatie: Voordat de API toegang verleent tot zijn bronnen, moeten verzoeken na authenticatie en autorisatie nog worden gecontroleerd op mogelijk schadelijke code. Een server zou dus openstaan voor een injectieaanval.
- Versleuteling: TLS/SSL-versleuteling beschermt de verbinding tussen de client en de server en zorgt ervoor dat hackers geen verzoeken en antwoorden kunnen onderscheppen.
- Snelheidsbeperkende technieken, zoals limieten en beperking, beschermen servers tegen brute-force-aanvallen zoals DDoS die erop gericht zijn ze te degraderen of te laten crashen.
- Geen gevoelige informatie in URI's: URI's van bronnen mogen geen beveiligde gegevens bevatten (zoals een gebruikersnaam, wachtwoord of authenticatietoken).
Conclusie
Gefeliciteerd! Verschillende basis- tot complexe REST API-interviewvragen en hun respectievelijke oplossingen zijn nu binnen handbereik.
Nu je een goed idee hebt van hoe je moet reageren op enkele van de typische REST API-interviewvragen, kun je doorgaan met het beantwoorden van de interviews. De volgende stap hangt af van uw doelstellingen.
Bezoek Interview serie met Hashdork om zich voor te bereiden op interviews.
Laat een reactie achter