In der Softwareentwicklungsbranche spielen Integrationen eine Schlüsselrolle bei der Anwendungsgestaltung. Eine der wichtigsten Technologien hierfür ist die REST-API . Kenntnisse der REST-API sind eine wichtige Fähigkeit für jeden technischen Spezialisten. In diesem Artikel stellen wir Ihnen 25 REST-API-Fragen vor, die Ihnen dabei helfen, sich auf ein Vorstellungsgespräch vorzubereiten und Ihre Fähigkeiten zu verbessern. Viel Spaß beim Lesen!
Zunächst unterteilt der Interviewer die Fragen zur REST-API normalerweise in theoretische und praktische. Zuerst werden 2-3 theoretische Fragen zur Terminologie und zu HTTP-Anforderungsmethoden gestellt, und dann erhalten Sie eine praktische Aufgabe zum Erstellen einer Anforderung.
Dieser Artikel enthält häufig gestellte theoretische Fragen und ich plane, im nächsten Artikel Beispiele für praktische Aufgaben im Zusammenhang mit REST API zu veröffentlichen. Wir wissen nicht im Voraus, welche Fragen Sie in einem Vorstellungsgespräch gestellt bekommen, aber ich bin sicher, dass Sie beim Durcharbeiten unserer Liste typischer Fragen wahrscheinlich tiefer in das Thema eintauchen und Ihr Wissen über REST API auf jeden Fall verbessern werden.
Gehen wir nun vom Einfachen zum Komplexen vor, beginnend mit der grundlegenden Terminologie und fahren mit einem Abschnitt mit komplexeren Fragen fort.
Antwort: Im Zusammenhang mit REST werden drei Begriffe verwendet, die oft als dasselbe angesehen werden, was jedoch nicht ganz stimmt. Diese Begriffe sind REST, REST API und RESTful API. Nun folgt eine Antwort zu REST. Der Begriff steht für Representational State Transfer und ist ein auf dem HTTP-Protokoll (Hypertext Transfer Protocol) basierender Architekturstil für die Entwicklung von Anwendungen, die über ein Frontend und/oder eine Integration mit externen Systemen verfügen. REST beschreibt Richtlinien, denen die zu entwickelnden API-Dienste folgen sollten. Diese Prinzipien stellen sicher, dass Anfragen zwischen Client und Server über HTTP übermittelt werden.
Antwort: Eine API ist eine Programmierschnittstelle, die es einzelnen Anwendungen ermöglicht, miteinander zu kommunizieren und Daten auszutauschen. Eine App für Essenslieferungen kann beispielsweise die Google Maps API verwenden, um den Standort des Kuriers zu verfolgen und auf einer Karte anzuzeigen. Eine REST-API ist eine API, die den Prinzipien von REST folgt und alle Daten als Ressourcen behandelt, die jeweils durch einen eindeutigen Uniform Resource Identifier (URI) dargestellt werden.
Antwort: Eine RESTful API ist eine API, die nach den Regeln (oder man kann auch „Prinzipien“ sagen) von REST entwickelt wurde. Mit anderen Worten ist der Unterschied zwischen REST API und RESTful API terminologischer Natur. Im ersten Fall handelt es sich um einen Satz von REST-Regeln, im zweiten Fall um die Implementierung einer bestimmten API nach REST-Regeln. Der Begriff RESTful API wird oft der Kürze halber durch REST API oder sogar REST ersetzt. Wenn Systemanalytiker in einem Anwendungsdiagramm Pfeile mit der Aufschrift REST zeichnen, meinen sie eine RESTful API.
Antwort: REST-API-Anfragen müssen zwei Grundprinzipien folgen: Trennung in Client und Server: Die Interaktion zwischen Client und Server erfolgt in Form von Anfragen und Antworten. Nur Clients können Anfragen stellen und nur Server können Antworten senden, um unabhängig voneinander zu arbeiten. Einheitliches Protokoll: Die Interaktion zwischen Client und Server muss über ein einziges Protokoll erfolgen. Bei REST ist dieses Protokoll HTTP.
Antwort: Sie können mindestens 4 weitere Prinzipien nennen. REST-API-Anfragen speichern keinen Status auf dem Server und können durch Serverschichten laufen und zwischengespeichert werden. Sie können in der Serverantwort auch ausführbaren Code an Clients senden. Server Stateless: Der Server speichert keine Informationen über vergangene Anfragen/Antworten. Jede Anfrage und Antwort enthält alle Informationen, die zum Abschließen der Interaktion erforderlich sind. Stateless-Kommunikation reduziert die Serverlast, spart Speicher und verbessert die Leistung. Schichtsystem: Zwischen dem Client und dem API-Server sind zusätzliche Server in Form von Schichten möglich, um verschiedene Funktionen auszuführen. In einem auf REST-Prinzipien basierenden System sind Schichten modular und können hinzugefügt und entfernt werden, ohne die Kommunikation zwischen Client und Server zu beeinträchtigen. Cachefähigkeit: Die Antworten des Servers geben an, ob seine Ressource zwischengespeichert werden kann, sodass Clients jede Ressource zwischenspeichern können, um die Leistung zu verbessern. Code auf Anfrage: Der Server kann in seiner Antwort ausführbaren Code an Clients senden, um ihn innerhalb der Client-Anwendung auszuführen.
Antwort: In REST wird jedes zugängliche Objekt auf der Serverseite als Ressource bezeichnet. Eine Ressource ist ein Objekt, das einen Typ, damit verbundene Daten, eine Beziehung zu anderen Ressourcen auf dem Server und eine Liste von Methoden hat, die zum Arbeiten damit verwendet werden können. Eine Ressource kann beispielsweise eine HTML- oder Textdatei, eine Datendatei, ein Bild oder Video oder eine ausführbare Codedatei sein. Eine Ressource wird durch einen Uniform Resource Identifier oder URI identifiziert. Clients greifen auf Ressourcen zu, indem sie ihre URIs in HTTP-Anfragen verwenden.
Antwort: URI steht für Uniform Resource Identifier. Dies ist eine Zeichenfolge, die eine Ressource auf dem Server identifiziert. Jede Ressource hat ihre eigene eindeutige URI, die es Clients ermöglicht, auf diese Ressource zuzugreifen und Aktionen mit ihr auszuführen, wenn sie in eine HTTP-Anforderung aufgenommen wird. Der Vorgang, auf eine Ressource über ihre URI zu verweisen, wird als „Adressierung“ bezeichnet.
Antwort: CRUD steht für „Create, Read, Update, Delete“. Dies sind die vier Hauptaktionen, die über die REST-API an Datenbanken ausgeführt werden können. Jede Aktion hat ihre eigene HTTP-Anforderungsmethode:
Antwort: Die HTTP-Antwortnutzlast bezeichnet die Ressourcendaten, die vom Client angefordert wurden. Diese werden auch kurz „HTTP-Antwortnutzlast“ genannt. Diese Daten können in den Formaten JSON, XML, HTML, Bilder, Dateien usw. vorliegen, je nachdem, was der Server genau bereitstellt.
Antwort: Messaging in REST bezieht sich auf den Nachrichtenaustausch zwischen Client und Server. Die Kommunikation beginnt immer damit, dass der Client eine HTTP-Anfrage an den Server stellt. Der Server verarbeitet diese Anfrage und sendet dann eine HTTP-Antwort zurück, die den Status der Anfrage und alle vom Client angeforderten Ressourcen angibt.
Antwort: Im Kontext von REST bezeichnet der Begriff „Message Broker“ eine Middleware, die dazu dient, Nachrichten zwischen verschiedenen Komponenten oder Systemen in einer verteilten Anwendung zu übermitteln. Der Broker kann asynchronen Datenaustausch, Message Queuing und Nachrichtenverarbeitung zwischen verschiedenen Systemmodulen bereitstellen.
Mit Message Brokern können asynchrone Vorgänge verwaltet oder Benachrichtigungen gesendet werden. Der Message Broker ist kein natives REST-Element, da... REST sich auf die synchrone Kommunikation zwischen Client und Server über HTTP-Anfragen konzentriert.
Antwort: Die HTTP-Anforderungsmethode gibt die gewünschte Aktion an, die der Server für die Ressource ausführen soll. In REST gibt es vier Hauptmethoden, um HTTP-Anforderungen von einem Client an einen Server zu stellen:
Antwort: POST dient zum Erstellen einer Ressource auf dem Server, während PUT zum Ersetzen einer Ressource an einer bestimmten URI durch eine andere Ressource dient. Wenn Sie PUT auf eine URI anwenden, der bereits eine Ressource zugeordnet ist, wird diese durch PUT ersetzt. Falls an der angegebenen URI keine Ressource vorhanden ist, erstellt PUT eine. PUT ist idempotent, d. h. wenn es mehrmals aufgerufen wird, wird nur eine Ressource erstellt. Das liegt daran, dass bei jedem Aufruf eine vorhandene Ressource ersetzt wird (oder eine neue erstellt wird, wenn es nichts zu ersetzen gibt). POST ist nicht idempotent. Wenn Sie beispielsweise POST 10 Mal aufrufen, werden auf dem Server 10 unterschiedliche Ressourcen erstellt, jede mit ihrer eigenen URI. Obwohl es selten verwendet wird, können POST-Antworten zwischengespeichert werden, PUT-Antworten jedoch nicht. POST-Anfragen gelten im Allgemeinen als nicht zwischenspeicherbar, können aber zwischengespeichert werden, wenn sie eindeutige Informationen zur „Aktualität“ der Daten enthalten. Eine ausführlichere Antwort ist, dass die Antwort auf eine POST- (oder PATCH-)Anforderung zwischengespeichert werden kann, wenn die Daten „frisch“ sind und der Content-Location-Header (en-US) gesetzt ist. Dies wird jedoch selten implementiert. Daher sollte das Zwischenspeichern von POST nach Möglichkeit vermieden werden.
Antwort: In REST gibt es die folgenden grundlegenden Komponenten einer HTTP-Anforderung: Die Anforderungsmethode, die an die Ressource gesendet wird (also GET, POST, PUT, DELETE). Eine URI, die die angeforderte Ressource auf dem Server identifiziert. HTTP-Version – also welche Version in der Serverantwort enthalten sein soll. Der HTTP-Anforderungsheader enthält Metadaten zur Anforderung, wie etwa den Benutzeragenten, vom Client akzeptierte Dateiformate, Anforderungstextformat, Sprache, Caching-Einstellungen usw. Der Text einer HTTP-Anforderung enthält alle mit der Anforderung verknüpften Daten. Dies ist nur erforderlich, wenn die Anforderung Daten auf dem Server mithilfe der Methoden POST oder PUT ändern soll.
Antwort: HTTP-Antworten werden vom Server an den Client gesendet. Sie informieren den Client darüber, dass die angeforderte Aktion abgeschlossen wurde (oder nicht) und über die Bereitstellung aller angeforderten Ressourcen. Eine HTTP-Antwort besteht aus vier Hauptkomponenten: Verwendete HTTP-Version. Statusleiste mit Anforderungsstatus und HTTP-Antwortstatuscode. HTTP-Antwortheader mit Metadaten zur Antwort, einschließlich Zeit, Servername, Benutzeragent, zurückgegebene Ressourcendateiformate, Caching-Informationen. HTTP-Antworttext mit Daten über die vom Client angeforderte Ressource.
Antwort: Der Server gibt die folgenden Vorgangsstatuscodes zurück, wenn die Anforderung erfolgreich verarbeitet wurde:
Antwort: Der Server gibt bei der Umleitung einer Anfrage folgende Statuscodes zurück:
Antwort: Der Server gibt die folgenden Codes zurück, wenn die Anfrage nicht erfolgreich ist:
Antwort: Der Server gibt die folgenden Codes zurück, wenn auf dem Server ein Fehler auftritt:
500 Interner Serverfehler: Die Anforderung wurde aufgrund eines unerwarteten Problems mit dem Server nicht abgeschlossen.
502 Bad Gateway: Die Anforderung wurde aufgrund einer falschen Antwort vom Upstream-Server nicht abgeschlossen.
503 Service nicht verfügbar: Der Server konnte die Anfrage aufgrund von Wartungsarbeiten, Überlastung oder anderen vorübergehenden Störungen nicht verarbeiten.
Eine Liste der gebräuchlichsten HTTP-Codes finden Sie hier
Antwort: GraphQL ist eine Abfragesprache, die es Clients ermöglicht, nur die Daten abzufragen, die sie benötigen. In GraphQL definiert der Client die Struktur und das Format der Daten, die er empfangen möchte, und der Server gibt sie entsprechend dieser Anfrage zurück. Der Hauptunterschied besteht darin, dass REST für jede Ressource ein festes Anfrage- und Antwortformat hat, während GraphQL es Clients ermöglicht, ihre Anfrage zu definieren und nur die Informationen abzurufen, die sie benötigen, was die Verwendung effizienter und flexibler macht.
Antwort: REST und SOAP (Simple Object Access Protocol) sind zwei Ansätze zum Erstellen von APIs. Es gibt drei Hauptunterschiede zwischen ihnen:
Antwort: Asynchrones JavaScript oder AJAX ist eine Reihe von Webentwicklungstechnologien, die in Webanwendungen verwendet werden. Im Kern ermöglicht AJAX einer Webseite, Anfragen an den Server zu stellen und die Benutzeroberfläche der Seite zu aktualisieren, ohne die gesamte Seite aktualisieren zu müssen.
Ein AJAX-Client kann die REST-API in seinen Anfragen verwenden, aber AJAX muss nicht nur mit der REST-API funktionieren. REST-APIs können mit jedem Client kommunizieren, unabhängig davon, ob dieser AJAX verwendet oder nicht.
Im Gegensatz zu REST, das HTTP-Anfragen und -Antworten zum Nachrichtenaustausch verwendet, sendet AJAX seine Anfragen mithilfe des in JavaScript integrierten XMLHttpRequest-Objekts an den Server. Serverantworten werden vom JavaScript-Code der Seite ausgeführt, um deren Inhalt zu ändern.
Antwort: Der Contract First-Ansatz zur REST-API-Entwicklung ist eine Methode, bei der die API-Spezifikation und der Vertrag erstellt und definiert werden, bevor die eigentliche Entwicklung beginnt. Dieser Vertrag dient als wichtiges Dokument, das definiert, wie Clients mit der API interagieren können und welche erwarteten Ergebnisse aus verschiedenen Anfragen erzielt werden.
Antwort: Als Vorteile des Contract First-Ansatzes sind folgende zu nennen:
Antwort: Der Code First-Ansatz zur REST-API-Entwicklung ist eine Methode, bei der zuerst die API-Funktionalität entwickelt und dann automatisch eine API-Spezifikation basierend auf dieser Funktionalität generiert wird. Das Kennzeichen des Code First-Ansatzes ist, dass sich Entwickler auf das Schreiben der API-Logik konzentrieren und Tools verwenden, mit denen sie automatisch Dokumentationen und Spezifikationen basierend auf dieser Logik erstellen können.
Im Allgemeinen können beide Ansätze, Code First und Contract First, im selben API-Entwicklungsprojekt kombiniert werden. In diesem Fall wird Code First für Rapid Prototyping verwendet, gefolgt von Contract First zur Formalisierung des Vertrags.
Ich hoffe, dieser Artikel ist für Sie bei der Vorbereitung auf ein Vorstellungsgespräch oder beim Auffrischen Ihrer Kenntnisse über REST API hilfreich.