40 häufig gestellte Fragen und Antworten zu REST-API-Interviews (2023)

Eine API steht für Application Programming Interface. Es dient als Gateway für Anwendungen, um auf einige Ressourcen anderer Anwendungen zuzugreifen.

Der Vorteil der Verwendung einer API besteht darin, den Zugriff auf Anwendungen von Drittanbietern bereitzustellen, sodass diese nicht auf die gesamten Daten Ihrer Anwendung zugreifen können. Sie können nur auf die Daten zugreifen, die Sie über Ihre API offenlegen.

Die Anwendung oder ein Benutzer, der auf die Daten zugreifen möchte, wird als Client bezeichnet, und die Anwendung, die die Daten bereitstellt, wird als Server bezeichnet.

APIs sind heute in jeder Softwarearchitektur weit verbreitet. Wenn Sie sich für eine Front-End-, Back-End-, Full-Stack- oder Netzwerk-Engineering-Rolle bewerben, werden Ihnen viele Fragen zu APIs gestellt.

Lassen Sie uns vor diesem Hintergrund einige der am häufigsten gestellten Interviewfragen zu REST-APIs untersuchen.

Was ist REST?

Antwort: REST ist ein architektonisches Design, das einige Einschränkungen für die Funktionsweise von APIs definiert. Die APIs, die den Prinzipien von REST folgen, werden als RESTful-APIs bezeichnet. REST steht für Representational State Transfer.

Es ist kein Protokoll oder Standard; Stattdessen handelt es sich um eine Architektur, die verwendet werden kann, um APIs auf verschiedene Weise zu implementieren.

Es bietet Entwicklern eine hohe Flexibilität und Freiheit und wird daher häufig zur Entwicklung von APIs verwendet. Hier sind einige der Prinzipien einer REST-Architektur:

  • Trennung von Client & Server: In einer RESTful API sollte der Client den Server nicht anders beeinflussen, als Daten über einen URI (Uniform Resource Identifier) ​​anzufordern. Ebenso sollte der Server den Inhalt des Clients in keiner Weise verändern.
  • Staatenlosigkeit: Wenn zwei separate Anfragen gestellt werden, wissen sie nichts voneinander. Mit anderen Worten, die Anforderungen sind zustandslos und behalten keinen Zustand bei. Wenn eine Anfrage erfüllt ist, wird sie einfach beendet. Jede Anfrage wird von anderen Anfragen isoliert.
  • Schichtenarchitektur: Der Client oder der Server weiß nicht, ob die Anfrage direkt an den Ursprung oder an eine zwischengeschaltete Anwendung gestellt wird. Sie kümmern sich nur um die Antwort auf die Anfrage.
  • Caching: Daten oder Antworten können sowohl auf der Client- als auch auf der Serverseite zwischengespeichert werden, um die Leistung und Skalierbarkeit zu verbessern. Wenn häufig Anforderungen für eine bestimmte Ressource gestellt werden, kann die Antwort auf diese Anforderung zwischengespeichert und bei Bedarf verwendet werden.

Was sind einige Hauptmerkmale von REST?

Antwort: Schlüsselmerkmale oder Merkmale von REST sind:

  • Flexibilität: Sie können von einem Server zu einem anderen wechseln, und es ändert sich nichts, da die API dieselbe Antwort für eine bestimmte Anfrage sendet. Außerdem können Sie beliebig viele Endpunkte für verschiedene Datentypen hinzufügen.
  • Skalierbarkeit: Caching verbessert die Skalierbarkeit, da die Antworten zur späteren Verwendung gespeichert werden. Es verringert die Belastung des Servers und reduziert auch die Latenz.
  • Autorisierung: Mit Hilfe des Autorisierungs-Headers können Sie die Anmeldeinformationen angeben, mit denen der Server die Anfrage autorisieren kann.
  • Zustandslosigkeit: Dies ist das wichtigste Merkmal von REST, da es verhindert, dass Anfragen wissen, was mit anderen Anfragen passiert. Anfragen werden isoliert und beendet, sobald sie erfüllt sind.

Was sind Ressourcen in einer REST-Architektur?

Antwort: Ressourcen sind Entitäten, auf denen verschiedene Operationen ausgeführt werden, wie z. B. Abrufen, Aktualisieren oder Löschen. Sie sind die Grundbausteine ​​der REST-Architektur.

Wenn Sie beispielsweise einen Online-E-Commerce-Shop in Betracht ziehen, werden die Produkte, Benutzer sowie Metadaten als Ressourcen betrachtet, da sie bearbeitet werden können. Ressourcen können über die API an eine andere Anwendung übertragen werden.

Nennen Sie einige Vor- und Nachteile einer REST-API.

Antwort: Die Vorteile von REST-APIs sind wie folgt:

  • Es ist einfach zu implementieren.
  • Ressourcen können einfach gehandhabt werden.
  • Es ist aufgrund der Client-Server-Architektur skalierbar.
  • Unterstützt mehrere Datenübertragungsmedientypen wie XML und JSON.

Seine Nachteile sind:

  • Sie können einen Status zwischen Anforderungen nicht beibehalten.
  • Die wahre Ursprungsquelle der Ressource kann aufgrund der geschichteten Architektur nicht bekannt sein.
  • Nicht gut für komplexe Abfragen oder Anforderungen.

REST-Vorlage definieren.

Antwort: Eine REST-Vorlage ist ein Dienstprogramm oder ein Client, über den Sie auf REST-APIs im Spring-Framework zugreifen können. Es verbirgt im Grunde den Boilerplate-Code, den Sie möglicherweise schreiben müssen, um eine Ressource von einer REST-API anzufordern.

Was ist RESTful?

Antwort: RESTful-APIs oder -Dienste sind Schnittstellen, die den REST-Architekturstil (Representational State Transfer) implementieren und mit Protokollen wie HTTP arbeiten.

Was sind RESTful-Webdienste?

Antwort: RESTful-Webdienste sind so konzipiert, dass sie am besten im Web funktionieren. Representational State Transfer (REST) ​​ist ein Architekturstil, der Einschränkungen festlegt, wie z. B. die einheitliche Schnittstelle, die mehrschichtige Architektur und die Zustandslosigkeit, wenn sie auf einen Webdienst angewendet werden, um wünschenswerte Eigenschaften wie Leistung und Skalierbarkeit zu induzieren, die es den Diensten ermöglichen, am besten zu funktionieren das Netz.

  Warum iPhone- und iPad-Apps nach Bluetooth fragen

Wie können Sie RESTful-Webdienste testen?

Antwort: Um einen RESTful-Webdienst zu testen, können Sie einen REST-Client wie Postman oder Thunder Client verwenden und den zu testenden Webdienst abfragen. Wenn Sie dann eine Antwort erhalten, verstehen Sie die Antwort; das ist der entscheidende Teil.

Wenn Sie eine komplexe API mit vielen Endpunkten testen möchten, müssen Sie möglicherweise Tests aufschlüsseln und Einheitentests, Integrationstests, Leistungstests und End-to-End-Tests durchführen.

Nennen Sie einige Funktionen von RESTful-Webdiensten.

Antwort: Einige der Hauptmerkmale von RESTful-Webdiensten sind:

  • Unterstützung für mehrere Medientypen wie JSON und XML.
  • Skalierbarkeit
  • Isolierung von Client & Server
  • Flexibilität

Definieren Sie RESTful-Root-Ressourcenklassen.

Antwort: Root-Ressourcenklassen sind „Plain Old Java Objects“ (POJOs), die entweder mit @Path annotiert sind oder mindestens eine Methode mit @Path oder einem Request-Methodenbezeichner wie @GET, @POST, @PUT oder haben @LÖSCHEN.

Was ist URI?

Antwort: URI steht für Uniform Resource Identifier. Es handelt sich um eine Zeichenfolge, die verwendet wird, um Ressourcen einer API oder eines Dienstes zu lokalisieren oder zu identifizieren. Es verwendet den Namen oder Ort der Ressource, um sie zu identifizieren, aber es verlässt sich nicht auf eine bestimmte Methode oder Technik.

Was ist Zustandslosigkeit in REST?

Antwort: Zustandslosigkeit bezieht sich auf eine Einschränkung, die auf eine API angewendet wird, bei der zwei beliebige Anforderungen nicht wissen können, was miteinander passiert. Mit anderen Worten, der Status der Anforderungen wird nicht beibehalten. Wenn die Anforderung erfüllt ist, wird sie einfach beendet, nachdem eine Antwort erhalten wurde.

Was ist JAX-RS?

Antwort: JAX-RS ist eine Java-API, mit der Sie Anwendungen in Java entwickeln können, die die REST-Architektur verwenden. Diese API erleichtert die Entwicklung von REST-Anwendungen in Java.

Was sind die wichtigsten Anmerkungen in der JAX-RS-API?

Antwort: Anmerkungen in JAX-RS werden von Entwicklern verwendet, um Java-Klassen zu dekorieren, um Ressourcen und Methoden zu definieren, die auf diesen Ressourcen ausgeführt werden können. Einige wichtige Anmerkungen der JAX-RS-API sind:

  • @GET: Es wird zum Erstellen von GET-Anforderungen in HTTP verwendet.
  • @POST: Es wird verwendet, um POST-Anforderungen in HTTP zu stellen.
  • @Path: Es bezieht sich auf den relativen Pfad einer Java-Klasse.
  • @QueryParam: Es bezieht sich auf die Abfrageparameter der URI oder URL.

Was sind einige Hauptfunktionen der JAX-RS-API?

Antwort: Features von JAX-RS sind:

  • Clientseitiges Caching
  • Serverseitiges Caching
  • Anpassung der Abfragezeichenfolge
  • Anmerkungen zur Laufzeit

Wie können die JAX-RS-Anwendungen konfiguriert werden?

Antwort: Eine JAX-RS-Anwendung besteht aus mindestens einer Ressourcenklasse, die in einer WAR-Datei verpackt ist. Der Basis-URI, von dem die Ressourcen einer Anwendung auf Anfragen antworten, kann auf zwei Arten festgelegt werden:

  • Verwenden der Annotation @ApplicationPath in einer Unterklasse von javax.ws.rs.core.Application, die im WAR-Paket enthalten ist
  • Verwenden des servlet-mapping-Tags im web.xml-Implementierungsdeskriptor von WAR

Was sind JAX-WS und JAX-RS?

Antwort: JAX-WS ist eine Jakarta XML Web Services API, die für die Entwicklung von APIs mit SOAP (Simple Object Access Protocol) verwendet wird – einem XML-basierten Messaging-Protokoll.

Andererseits ist JAX-RS eine Java-API, die zum Erstellen von Webdiensten unter Verwendung der REST-Architektur verwendet wird.

Was sind HTTP-Statuscodes?

Antwort: Statuscodes sind nichts anderes als eine Möglichkeit, den Status der vom Server an den Client gesendeten Antwort mitzuteilen. Sie sind in den vom Server gesendeten Antwortheadern vorhanden.

Der Client kann anhand der Statuscodes feststellen, ob die Anfrage fehlgeschlagen oder erfüllt wurde oder ob mit der Antwort etwas nicht stimmt.

Hier sind einige allgemeine Statuscodes von HTTP:-

  • 200 – Es steht für das Schlüsselwort „OK“. Dies bedeutet, dass die Anfrage erfüllt wurde und die Antwort in Ordnung ist.
  • 404 – Es steht für „Not Found“. Dies bedeutet, dass auf dem Server keine Ressource oder kein Endpunkt vorhanden ist.
  • 500 – Steht für „Internal Server Error“. Dies geschieht normalerweise, wenn der Server die richtige Antwort nicht generieren kann oder ein Fehler auftritt, der nicht explizit ausgegeben wird.
  • 503 – Steht für „Dienst nicht verfügbar“. Dies bedeutet, dass der Server derzeit keine Anfragen verarbeiten kann, wahrscheinlich weil er tot ist oder wegen einer Überlastung der Anfragen nicht funktioniert. Es kann auch auftreten, wenn der Server gewartet wird.

Was sind HTTP-Methoden?

Antwort: HTTP-Methoden werden verwendet, um einen bestimmten Aktionstyp für eine bestimmte Ressource einer API auszuführen. Wenn Sie beispielsweise eine Liste von Filmen aus einer Filmsammlungs-API abrufen möchten, können Sie die von HTTP bereitgestellte GET-Methode verwenden. Wenn Sie die Daten aktualisieren möchten, können Sie die von HTTP bereitgestellte POST-Methode verwenden.

  Audio zu deinen Gifs hinzufügen

Häufig verwendete HTTP-Methoden sind wie folgt:

  • GET: Anfragen, die GET verwenden, sollten nur Daten abrufen.
  • POST: Es aktualisiert die Ressource, indem es eine neu aktualisierte Ressource an den Server sendet.
  • DELETE: Es löscht die angegebene Ressource.
  • PATCH: Es ändert teilweise die Ressource.

Wie funktioniert die HTTP-Basisauthentifizierung?

Antwort: Die Authentifizierung ist ein Prozess zur Überprüfung der Authentizität eines Clients, um die Datensicherheit aufrechtzuerhalten. Bei HTTP funktioniert die Authentifizierung über einen Authorization Header, der vom Client gesendet wird.

Der Authorization Header besteht aus Benutzername/ID und Passwort des Clients, die dann vom Server verifiziert und der Zugriff gewährt wird.

Eine wichtige Sache, die hier zu beachten ist, ist, dass bei Verwendung der HTTP-Authentifizierung der Kanal, durch den die Anmeldeinformationen geleitet werden, verschlüsselt und sicher sein sollte.

Sie können den Kanal mit dem in HTTPS integrierten SSL-Layer sichern. Daher wird empfohlen, beim Umgang mit Anmeldeinformationen HTTPS anstelle von einfachem HTTP zu verwenden.

Was sind die Kernkomponenten der HTTP-Anfrage?

Antwort: Ein HTTP-Request besteht aus folgenden Komponenten:

  • Anforderungszeile: Dies ist die erste Zeile in jeder Anforderung und besteht aus der HTTP-Methode, dem Pfad oder Endpunkt und der HTTP-Versionsnummer.
  • Header: HTTP-Header werden verwendet, um Metadaten der Anfrage bereitzustellen.
  • Body (Optional): Diese Komponente ist nur für einige der Anfragemethoden vorhanden. Es ist für GET-Anfragen nicht erforderlich, aber für POST-Anfragen. Es ist die eigentliche Nachricht der Anfrage.

Was sind die Kernkomponenten der HTTP-Antwort?

Antwort: Eine HTTP-Antwort besteht aus folgenden Komponenten:

  • Status: Es bezieht sich auf den HTTP-Statuscode, der vom Server gesendet wird.
  • Header: Genau wie Anfragen haben auch Antworten ihre jeweiligen Header, die nützliche Informationen über die Antwort liefern.
  • Nachricht: Dies sind die eigentlichen Daten, die vom Server an den Client gesendet werden, um eine bestimmte Ressource anzufordern.

Was ist der Unterschied zwischen REST und AJAX?

Antwort: AJAX ist ein Client, über den Sie auf RESTful-APIs zugreifen können. Es wird verwendet, um asynchrone Anfragen mit JavaScript zu senden.

REST oder Representational State Transfer ist eine Architektur, die implementiert werden kann, um RESTful-APIs zu erstellen. Kurz gesagt, um HTTP-Anforderungen zu senden, können Sie AJAX verwenden, das als Client dient, aber wenn Sie RESTful-APIs implementieren möchten, müssen Sie die REST-Architektur verwenden.

Was ist der Unterschied zwischen SOAP und REST?

Antwort: Representational State Transfer oder REST ist eine Architektur mit minimalen Einschränkungen zum Erstellen von APIs. SOAP oder Simple Object Access Protocol ist ein Protokoll mit strengen Anforderungen zur Implementierung einer API.

REST ist flexibler und benutzerfreundlicher als SOAP. XML-basiertes Messaging wird in SOAP verwendet, während Sie in REST viele Datenübertragungstypen wie JSON, XML usw. verwenden können. Im Vergleich zu SOAP ist REST leichter und schneller.

SOAP-Webdienste verfügen über integrierte Sicherheit, was ein Vorteil der Verwendung von SOAP gegenüber REST ist, aber die zusätzlichen Funktionen machen es auch komplex und schwer zu verwenden.

Was ist der Unterschied zwischen PUT und POST?

Antwort: POST ist eine HTTP-Anforderungsmethode, die einige Daten an den Server sendet. Wenn Sie mehrere POST-Anforderungen für eine bestimmte Ressource stellen, kann es zu Nebenwirkungen für Ihre Daten kommen. Wenn Sie beispielsweise einen Artikel zu einer Sammlung hinzufügen möchten, werden bei mehreren POST-Anforderungen mehrere Artikel zur Sammlung hinzugefügt, was zu redundanten Artikeln führt.

PUT ist eine HTTP-Anforderungsmethode, die Daten für eine bestimmte Ressource an den Server sendet, die Daten jedoch nur einmal aktualisiert. Wenn Sie mehrere PUT-Anforderungen für eine bestimmte Ressource senden, treten keine Nebeneffekte auf, und die Daten werden nur einmal hinzugefügt. Wenn die Ressource in PUT nicht existiert, wird eine neue erstellt, und wenn sie existiert, wird die vorhandene aktualisiert.

PUT ist idempotent, POST nicht.

Was ist eine Nutzlast?

Antwort: Eine Nutzlast in einer REST-API ist einfach der Text der Anfrage, die vom Client an den Server gesendet wird. Es sind die Daten, die Sie an den Server senden und eine Antwort erhalten möchten.

Was ist die maximale Payload-Größe, die in Post-Methoden gesendet werden kann?

Antwort: Es gibt kein vom HTTP-Protokoll selbst festgelegtes Standardlimit. Die Grenze kann von der Höchstgrenze des Clients oder des Servers abhängen, je nachdem, welche die Mindestgrenze ist.

Was sind die Best Practices, die beim Erstellen von URIs befolgt werden müssen?

Antwort: Einige der wichtigsten Punkte, die Sie beim Entwerfen von URIs beachten müssen, sind:

  • Vermeiden Sie die Verwendung von Dateierweiterungen
  • Seien Sie konsistent mit allen URIs
  • Unterteilen Sie die URIs in Domänen und Unterdomänen für unterschiedliche Gruppen von Ressourcen
  • Sie sollten Bindestriche oder Unterstriche verwenden, um Wörter in Sätzen zu trennen, die in URIs eingebettet sind
  • Sie sollten den Schrägstrich verwenden, um eine Ressourcenhierarchie anzugeben
  • Codieren Sie einen URI mit der richtigen Codierung
  • Versuchen Sie, den URI für Menschen lesbar zu machen
  So behalten Sie die CPU-Statistiken des Task-Managers in Ihrer Taskleiste

Was sind idempotente Methoden?

Antwort: Idempotente HTTP-Methoden haben die gleiche Wirkung auf den Server, obwohl sie mehrere identische Anfragen senden. Wenn Sie beispielsweise mehrere identische DELETE-Anfragen für eine bestimmte Ressource senden, ändert sich die Ressource nicht bei jeder Anfrage; Es wird aktualisiert, als ob nur eine Anfrage gesendet wurde.

Einige der idempotenten Methoden umfassen:

  • SETZEN
  • LÖSCHEN
  • ERHALTEN
  • KOPF
  • OPTIONEN

Was ist Postbote?

Antwort: Postman ist ein API-Entwicklungstool zum Entwickeln, Modifizieren und Testen von APIs. Es bietet viele Funktionen zum schnellen Erstellen und Testen von APIs, ohne dass ein Client eingerichtet werden muss.

Antwort: Der Cache-Control-Header besteht aus Anweisungen oder Anweisungen zum Konfigurieren des Cachings in Browsern und Servern. Es teilt dem Browser oder dem Server mit, was zwischengespeichert werden soll und wie lange es zwischengespeichert werden soll, bevor es über die Netzwerkanforderung angefordert wird.

Der Cache-Control-Header enthält die folgenden Anweisungen:-

  • max-alter
  • kein Cache
  • Privatgelände
  • öffentlich
  • kein Laden
  • unveränderlich

Definieren Sie Messaging in RESTful-Webdiensten.

Antwort: Messaging in RESTful-Webdiensten bezieht sich darauf, dass der Client eine HTTP-Anforderung an den Server sendet, worauf der Server mit einer HTTP-Antwort antwortet. Diese Kommunikation zwischen Client und Server wird als Messaging bezeichnet.

Was ist der Unterschied zwischen monolithischer, SOA- und Microservices-Architektur?

Antwort: In einer monolithischen Architektur wird alles an einem Ort verwaltet. Die Clientseite, der Server sowie die Datenbank werden alle von einem einzigen Ort aus verwaltet. Deshalb ist es als monolithisch bekannt, weil sich das Wort „Monolith“ auf einen einzelnen Block oder Stein bezieht.

SOA steht für serviceorientierte Architektur. In dieser Architektur werden verschiedene Aspekte der Anwendung von verschiedenen Diensten verwaltet, die ebenfalls Software sind. Es handelt sich also um eine Kombination mehrerer Service-Software-Module. Integration ist der zentrale Teil dieser Architektur.

Die Microservices-Architektur ähnelt SOA, verfügt jedoch im Gegensatz zu SOA über mehrere autonome Softwareprogramme, die über APIs miteinander kommunizieren. Anders als in der monolithischen Architektur ist hier alles autonom und gewissermaßen unabhängig.

Wie funktioniert die Microservice-Architektur?

Antwort: In einer Microservice-Architektur werden die Anwendungen in kleinere Untereinheiten unterteilt, die unabhängig voneinander sind und eigenständig arbeiten, aber über einen klar definierten Satz von APIs miteinander kommunizieren.

Zu den Vorteilen der Microservices-Architektur gehören Agilität, Flexibilität, Skalierbarkeit, unabhängige Technologien, wiederverwendbare Dienste und einfache Bereitstellung.

Was ist CRUD?

Antwort: CRUD steht für Create, Read, Update, Delete. Dies sind die Operationen, die für eine bestimmte Ressource ausgeführt werden können. Die API, die alle diese Operationen unterstützt, ist als CRUD-API bekannt. Dies sind die grundlegendsten Operationen, die von einer API auf einer Ressource ausgeführt werden können.

Was ist Caching?

Antwort: Caching ist eine Technik zum Speichern einer Antwort oder einer Anfrage auf dem Client oder dem Server, damit sie später wieder verwendet werden kann.

Antworten werden im Allgemeinen auf dem Client zwischengespeichert, denn wenn der Client dieselbe Anfrage mehrmals in einem kurzen Zeitintervall stellt, dann macht es keinen Sinn, die Antwort erneut über das Netzwerk anzufordern und die Bandbreite zu verschwenden.

Wozu dient @RequestMapping?

Antwort: Es handelt sich um eine Anmerkung im Spring-Framework, die verwendet wird, um Webanforderungen bestimmten Handler-Klassen und/oder Handler-Methoden zuzuordnen.

Was macht @PathVariable?

Antwort: Die Annotation @PathVariable im Spring-Framework wird verwendet, um den Wert der Vorlagenvariablen zu extrahieren und ihren Wert einer Methodenvariablen zuzuweisen.

Definieren Sie HttpMessageConverter.

Antwort: Wenn eine HTTP-Anforderung (oder Teile davon) in einen Typ konvertiert werden muss, der als Argument für eine Handler-Methode benötigt wird, oder wenn der von einer Handler-Methode zurückgegebene Wert auf irgendeine Weise konvertiert werden muss, um eine HTTP-Antwort zu erstellen, HTTP Nachrichtenkonverter verwendet werden.

Antwort: Einige Tools, die Ihnen beim API-Testen helfen können, sind folgende:

  • Briefträger
  • Seien Sie versichert
  • Ruhe scharf
  • Katalon
  • ReadyAPI
  • Apigee

Letzte Worte

Heutzutage sind APIs aufgrund des Aufkommens des Internets extrem populär geworden. Ein weiterer Grund für die Beliebtheit von REST-APIs ist, dass sie einfach zu entwickeln und zu verwenden sind.

Wenn Sie sich auf ein Vorstellungsgespräch vorbereiten, berücksichtigen Sie die obigen Fragen zu REST-APIs, die möglicherweise in Ihrem Vorstellungsgespräch gestellt werden.

Als Nächstes können Sie überprüfen, wie Sie eine Website mit der Web Scraping API von wdzwdz schaben.