REST-API: Grundlagen und Prinzipien

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Welche der folgenden Aussagen beschreibt am besten das Prinzip der Zustandslosigkeit (Statelessness) in einer REST-API?

  • Der Client speichert eine Kopie der Serverdaten, um die Anzahl der Anfragen zu reduzieren.
  • Der Server und der Client tauschen regelmäßig Statusmeldungen aus, um die Verbindung aufrechtzuerhalten.
  • Der Server speichert Sitzungsdaten des Clients, um nachfolgende Anfragen effizienter zu bearbeiten.
  • Jede Anfrage vom Client an den Server muss alle Informationen enthalten, die zur Bearbeitung der Anfrage notwendig sind, ohne auf serverseitig gespeicherte Kontextinformationen zuzugreifen. (correct)

Welchen Vorteil bietet das Prinzip 'Hypermedia as the Engine of Application State' (HATEOAS) in REST-APIs?

  • Dynamische Entdeckung von Ressourcen und Aktionen, wodurch Clients nicht auf festkodierte URLs angewiesen sind. (correct)
  • Automatische Generierung von API-Dokumentationen basierend auf den Hypermedia-Links.
  • Verbesserte Performance durch Reduzierung der Anzahl der Ressourcen, die eine API bereitstellt.
  • Erhöhte Sicherheit durch Verschlüsselung der Hypermedia-Links.

Welche HTTP-Methode sollte idealerweise verwendet werden, um eine Ressource vollständig zu aktualisieren?

  • PATCH
  • PUT (correct)
  • POST
  • GET

Eine REST-API gibt den HTTP-Statuscode 403 Forbidden zurück. Was bedeutet das?

<p>Der Server hat die Anfrage verstanden, weigert sich aber, sie zu autorisieren. (A)</p> Signup and view all the answers

Welchen primären Vorteil bietet die Verwendung von JSON als Datenformat in REST-APIs?

<p>JSON ist leichtgewichtig und einfach zu parsen, was die Verarbeitung beschleunigt. (D)</p> Signup and view all the answers

Welche Aussage beschreibt am besten den Unterschied zwischen Authentifizierung und Autorisierung im Kontext von REST-APIs?

<p>Authentifizierung bestätigt die Identität des Clients, während Autorisierung bestimmt, auf welche Ressourcen der Client Zugriff hat. (C)</p> Signup and view all the answers

Welche der folgenden Optionen ist ein gängiger Weg, um API-Versioning in REST-APIs zu implementieren?

<p>Nutzung des URI-Pfades (z.B. <code>/v1/users</code>). (C)</p> Signup and view all the answers

Warum ist es eine Best Practice, in REST-API-URIs Substantive anstelle von Verben zu verwenden?

<p>Um die Aktionen, die auf Ressourcen ausgeführt werden können, durch die HTTP-Methoden (GET, POST, etc.) auszudrücken. (A)</p> Signup and view all the answers

Welchen Vorteil bietet die Verwendung von OAuth 2.0 für die Authentifizierung und Autorisierung in REST-APIs?

<p>OAuth 2.0 ermöglicht es Drittanbieteranwendungen, beschränkten Zugriff auf einen HTTP-Dienst im Namen des Benutzers zu erhalten, ohne dessen Anmeldeinformationen preiszugeben. (B)</p> Signup and view all the answers

Was ist der Hauptunterschied zwischen REST und SOAP?

<p>REST ist leichter und verwendet standardmäßige HTTP-Methoden, während SOAP ein Protokoll ist, das oft mit WS-* Standards verwendet wird und komplexer ist. (C)</p> Signup and view all the answers

Worin besteht der wesentliche Unterschied zwischen REST und GraphQL im Hinblick auf die Datenabfrage?

<p>GraphQL verwendet einen einzigen Endpunkt und der Client spezifiziert die benötigten Daten, während REST mehrere Endpunkte verwendet und der Server die zurückgegebenen Daten bestimmt. (A)</p> Signup and view all the answers

Warum ist API-Dokumentation für REST-APIs von entscheidender Bedeutung?

<p>Sie unterstützt Entwickler dabei, die API zu verstehen und korrekt zu nutzen, indem sie URI-Endpunkte, Anfrage-/Antwortformate und Authentifizierungsanforderungen beschreibt. (A)</p> Signup and view all the answers

Welchen Vorteil bietet die Implementierung von Pagination (Seitenumbruch) für große Datensätze in REST-APIs?

<p>Reduzierung der Serverlast und Beschleunigung der Antwortzeiten, indem große Datenmengen in kleinere, handlichere Pakete aufgeteilt werden. (B)</p> Signup and view all the answers

Ein Client sendet eine POST-Anfrage an eine REST-API. Welcher HTTP-Statuscode deutet typischerweise darauf hin, dass die Ressource erfolgreich erstellt wurde?

<p>201 Created (B)</p> Signup and view all the answers

Welche der folgenden Aussagen ist KEIN Schlüsselprinzip von REST?

<p>Zustandsbehaftet (C)</p> Signup and view all the answers

Welche Art von Sicherheitsbedrohung wird durch die Verwendung von JWT (JSON Web Tokens) primär adressiert?

<p>Unbefugter Zugriff auf Ressourcen durch die Überprüfung und den Austausch von Ansprüchen zwischen Parteien. (D)</p> Signup and view all the answers

Welche Konsequenz hat es, wenn eine REST-API gegen das Prinzip der 'Cacheability' (Cache-Fähigkeit) verstößt?

<p>Erhöhte Serverlast und potenziell langsamere Antwortzeiten für Clients (D)</p> Signup and view all the answers

Ein Entwickler möchte eine bestehende Ressource teilweise in einer REST-API aktualisieren. Welche HTTP-Methode ist dafür am besten geeignet?

<p>PATCH (D)</p> Signup and view all the answers

Welches der folgenden Elemente ist ein entscheidender Bestandteil einer gut gestalteten REST-API, um eine einfache Interoperabilität zwischen verschiedenen Systemen zu gewährleisten?

<p>Nutzung offener Standards wie HTTP und JSON (C)</p> Signup and view all the answers

Eine REST-API soll so gestaltet werden, dass sie sich weiterentwickeln kann, ohne bestehende Clients zu beeinträchtigen. Welche der folgenden Maßnahmen ist dafür am wichtigsten?

<p>Implementierung von API-Versioning (A)</p> Signup and view all the answers

Flashcards

REST API

Eine Architektur für vernetzte Anwendungen, die auf einem zustandslosen Client-Server-Modell basiert.

Client-Server (REST)

Client und Server arbeiten unabhängig voneinander; Clients senden Anfragen, Server verarbeiten diese und senden Antworten.

Zustandslosigkeit (REST)

Jede Anfrage vom Client muss alle notwendigen Informationen enthalten, ohne gespeicherte Kontextinformationen auf dem Server.

Cacheable (REST)

Antworten sollten zwischengespeichert werden können, um die Effizienz zu verbessern.

Signup and view all the flashcards

Layered System (REST)

Die Architektur kann aus mehreren Schichten bestehen, ohne die Interaktion zwischen Client und Server zu beeinträchtigen.

Signup and view all the flashcards

Uniform Interface (REST)

Einheitliche Schnittstelle vereinfacht die Architektur und ermöglicht unabhängige Weiterentwicklung.

Signup and view all the flashcards

Code on Demand (REST, optional)

Server können die Funktionalität eines Clients durch Übertragen von ausführbarem Code erweitern (optional).

Signup and view all the flashcards

Identifikation von Ressourcen (REST)

Jede Ressource sollte durch einen URI (Uniform Resource Identifier) eindeutig identifizierbar sein.

Signup and view all the flashcards

Manipulation von Ressourcen (REST)

Clients manipulieren Ressourcen durch Repräsentationen (z.B. JSON, XML).

Signup and view all the flashcards

Self-Descriptive Messages (REST)

Jede Nachricht enthält genügend Informationen, um die Verarbeitung zu beschreiben (z.B. Medientypen).

Signup and view all the flashcards

HATEOAS (REST)

Clients entdecken und nutzen die API durch Hypermedia-Links in den Antworten.

Signup and view all the flashcards

HTTP GET

Ruft eine Ressource ab. Sollte keine Seiteneffekte haben (idempotent).

Signup and view all the flashcards

HTTP POST

Erstellt eine neue Ressource.

Signup and view all the flashcards

HTTP PUT

Aktualisiert eine bestehende Ressource vollständig.

Signup and view all the flashcards

HTTP PATCH

Modifiziert eine bestehende Ressource teilweise.

Signup and view all the flashcards

HTTP DELETE

Löscht eine Ressource.

Signup and view all the flashcards

Ressourcen (REST)

Schlüsselabstraktionen von Informationen, identifiziert durch einen URI.

Signup and view all the flashcards

HTTP Status Code 200

200 OK bedeutet Anfrage erfolgreich.

Signup and view all the flashcards

HTTP Status Code 404

404 Not Found bedeutet Ressource nicht gefunden.

Signup and view all the flashcards

JSON

JSON ist ein schlankes Datenformat das oft in REST APIs verwendet wird.

Signup and view all the flashcards

Study Notes

  • REST API (Representational State Transfer Application Programming Interface) ist ein Architekturstil zum Aufbau vernetzter Anwendungen.
  • Es basiert auf einem zustandslosen, Client-Server-fähigen und zwischenspeicherbaren Kommunikationsprotokoll, wobei in fast allen Fällen das HTTP-Protokoll verwendet wird.
  • REST-APIs ermöglichen verschiedenen Softwaresystemen die standardisierte Kommunikation und den Datenaustausch über das Internet.

Hauptprinzipien von REST

  • Client-Server: Client und Server arbeiten unabhängig voneinander; Clients initiieren Anfragen, und Server verarbeiten diese und senden Antworten zurück.
  • Zustandslos: Jede Anfrage von einem Client an einen Server muss alle Informationen enthalten, die zum Verständnis der Anfrage erforderlich sind, und darf keinen gespeicherten Kontext auf dem Server nutzen. Der Sitzungsstatus wird vollständig auf dem Client verwaltet.
  • Zwischenspeicherbar: Antworten sollten zwischenspeicherbar sein, um die Effizienz zu verbessern. Clients können zwischengespeicherte Antworten für ähnliche Anfragen wiederverwenden.
  • Schichtsystem: Die Architektur kann aus mehreren Schichten bestehen, die die Interaktion zwischen Client und Server nicht beeinträchtigen.
  • Einheitliche Schnittstelle: Diese Einschränkung ist grundlegend für das Design jeder RESTful-API und vereinfacht und entkoppelt die Architektur, wodurch sich jedes Teil unabhängig weiterentwickeln kann.
  • Code on Demand (optional): Server können die Funktionalität eines Clients erweitern, indem sie ausführbaren Code übertragen.

Details zur einheitlichen Schnittstelle

  • Identifizierung von Ressourcen: Jede Ressource sollte über einen URI (Uniform Resource Identifier) eindeutig identifizierbar sein.
  • Manipulation von Ressourcen durch Darstellungen: Clients bearbeiten Ressourcen durch Darstellungen (z. B. JSON, XML), die genügend Informationen für den Server bereitstellen, um die Ressource zu ändern oder zu löschen.
  • Selbstbeschreibende Nachrichten: Jede Nachricht enthält genügend Informationen, um zu beschreiben, wie die Nachricht verarbeitet werden soll (z. B. unter Verwendung von Medientypen).
  • Hypermedia as the Engine of Application State (HATEOAS): Clients entdecken und nutzen die API über Hypermedia-Links, die in den Antworten enthalten sind. Dies ermöglicht es Clients, dynamisch mit der API zu navigieren und zu interagieren.

HTTP-Methoden

  • GET: Ruft eine Ressource ab. Sollte keine Nebenwirkungen haben (idempotent).
  • POST: Erstellt eine neue Ressource.
  • PUT: Aktualisiert eine vorhandene Ressource vollständig.
  • PATCH: Ändert eine vorhandene Ressource teilweise.
  • DELETE: Löscht eine Ressource.

Ressourcen und URIs

  • Ressourcen sind die wichtigsten Abstraktionen von Informationen.
  • Jede Ressource wird durch einen URI identifiziert.
  • URIs sind so konzipiert, dass sie klar und vorhersehbar sind.
  • Beispiel: https://api.example.com/users (Sammlung von Benutzern), https://api.example.com/users/123 (spezifischer Benutzer mit ID 123).

Datenformate

  • JSON (JavaScript Object Notation) ist aufgrund seiner Einfachheit und einfachen Analyse das gebräuchlichste Datenformat.
  • XML (Extensible Markup Language) ist ein weiteres Format, das in modernen APIs jedoch weniger häufig verwendet wird als JSON.

Statuscodes

  • 200 OK: Anfrage war erfolgreich.
  • 201 Erstellt: Ressource wurde erfolgreich erstellt.
  • 204 Kein Inhalt: Anfrage war erfolgreich, es gibt jedoch keinen Inhalt zurückzugeben.
  • 400 Ungültige Anfrage: Anfrage konnte aufgrund einer fehlerhaften Syntax nicht verstanden werden.
  • 401 Nicht autorisiert: Authentifizierung ist erforderlich.
  • 403 Verboten: Der Server hat die Anfrage verstanden, verweigert jedoch die Autorisierung.
  • 404 Nicht gefunden: Ressource wurde nicht gefunden.
  • 500 Interner Serverfehler: Allgemeine Fehlermeldung, wenn eine unerwartete Bedingung aufgetreten ist.

Vorteile von REST-APIs

  • Skalierbarkeit: Die Zustandslosigkeit ermöglicht eine einfache Skalierung serverseitiger Komponenten.
  • Flexibilität: REST-APIs können verschiedene Arten von Clients bedienen.
  • Interoperabilität: Verwendet offene Standards wie HTTP und JSON, was die Interoperabilität zwischen verschiedenen Systemen und Plattformen erleichtert.
  • Einfachheit: Leicht zu verstehen und zu implementieren.
  • Unabhängige Entwicklung: Die Client- und Serverseiten können sich separat entwickeln.

HATEOAS (Hypermedia as the Engine of Application State)

  • HATEOAS ermöglicht es Clients, verfügbare Ressourcen und Aktionen dynamisch zu ermitteln.
  • API-Antworten enthalten Hyperlinks, die Clients leiten.
  • Entkoppelt Client und Server, indem es fest codierte URLs vom Client entfernt.
  • Unterstützt die API-Entwicklung, ohne Clients zu beeinträchtigen.
  • Beispiel: Eine Antwort kann Links zum Bearbeiten oder Löschen der abgerufenen Ressource enthalten.

API-Dokumentation

  • Entscheidend für Entwickler, um zu verstehen, wie die API verwendet wird.
  • Zu den gängigen Tools gehören OpenAPI (Swagger) und RAML.
  • Die Dokumentation sollte URI-Endpunkte, Anfrage-/Antwortformate und Authentifizierungsanforderungen enthalten.

Authentifizierung und Autorisierung

  • Die Authentifizierung überprüft die Identität des Clients.
  • Die Autorisierung bestimmt, auf welche Ressourcen der Client Zugriff hat.
  • Übliche Methoden umfassen:
    • API-Schlüssel: Einfache Authentifizierung mit einem Schlüssel.
    • OAuth 2.0: Delegiertes Autorisierungs-Framework, das Drittanbieteranwendungen eingeschränkten Zugriff auf einen HTTP-Dienst ermöglicht.
    • JWT (JSON Web Tokens): Kompakte, URL-sichere Möglichkeit, Ansprüche darzustellen, die zwischen zwei Parteien übertragen werden sollen.

API-Versionierung

  • Ermöglicht die Weiterentwicklung der API, ohne bestehende Clients zu beeinträchtigen.
  • Die Versionierung kann implementiert werden durch:
    • URI-Pfad (z. B. /v1/users)
    • Header (z. B. Accept: application/vnd.example.v1+json)

Best Practices für das REST-API-Design

  • Verwenden Sie Substantive anstelle von Verben in URIs (z. B. /users anstelle von /getUsers).
  • Verwenden Sie HTTP-Methoden korrekt (z. B. GET zum Abrufen, POST zum Erstellen).
  • Stellen Sie klare und informative Fehlermeldungen bereit.
  • Implementieren Sie die Paginierung für große Datensätze.
  • Sichern Sie die API mithilfe geeigneter Authentifizierungs- und Autorisierungsmechanismen.
  • Dokumentieren Sie die API gründlich.

REST vs. SOAP

  • REST:
    • Architektonischer Stil.
    • Verwendet Standard-HTTP-Methoden.
    • Verwendet typischerweise JSON oder XML.
    • Einfach und leichtgewichtig.
  • SOAP (Simple Object Access Protocol):
    • Protokoll.
    • Verwendet XML für das Nachrichtenformat.
    • Wird oft mit WS-* Standards für Sicherheit, Transaktionen usw. verwendet.
    • Komplexer und schwergewichtiger.

GraphQL vs. REST

  • REST:
    • Mehrere Endpunkte.
    • Der Server bestimmt die zurückgegebenen Daten.
    • Kann zu Über- oder Unterabruf von Daten führen.
  • GraphQL:
    • Einzelner Endpunkt.
    • Der Client gibt die benötigten Daten an.
    • Effizienterer Datenabruf.
  • GraphQL wird oft für komplexe Anwendungen mit spezifischen Datenanforderungen bevorzugt.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Introduction to REST API
10 questions
REST API și Web Services
14 questions
Programmabilité des Réseaux - API REST
8 questions
REST API Development with Redis
32 questions
Use Quizgecko on...
Browser
Browser