top of page

Namenskonvention für REST-APIs

August 22, 2024

2PI-IT Solutions

 

Auf der Vision, REST API-Namenskonventionen klar und verständlich zu gestalten

 

Ahmet Aydin


Auf der Suche nach einer optimalen Namenskonvention für deine REST-API stößt du sicherlich auf viele unterschiedliche Ansätze und Best Practices. Die richtige Wahl kann jedoch einen erheblichen Einfluss auf die Klarheit, Benutzerfreundlichkeit und Wartbarkeit deiner API haben. In diesem Beitrag werden wir uns genau damit beschäftigen und dir zeigen, wie du ein konsistentes und intuitives Namensschema entwickeln kannst, das nicht nur dir, sondern auch den Nutzern deiner API das Leben erleichtert.


Was ist eine REST-API?


REST API steht für Representational State Transfer Application Programming Interface. Es ist ein mächtiges Werkzeug, das verschiedenen Softwareanwendungen ermöglicht, über das Web zu kommunizieren, indem es standardisierte HTTP-Methoden wie

GET, POST, PUT, Patch und DELETE verwendet.

REST-APIs machen es einfacher, mit Ressourcen zu arbeiten und sie zu verwalten. Sie ermöglichen einen nahtlosen Datenaustausch sowie die Integration zwischen verschiedenen Systemen.

Die Bedeutung von Namenskonventionen


Beim Entwurf einer REST-API kann die Art und Weise, wie Sie Ihre Ressourcen benennen, erheblichen Einfluss auf die Klarheit und Benutzerfreundlichkeit Ihrer API haben. Eine strukturierte Namenskonvention hilft, eine klare Beziehung zwischen Ihren Ressourcen und den HTTP-Methoden herzustellen, die mit ihnen interagieren.

In diesem Blogbeitrag werden wir die Kunst der REST-API-Namenskonventionen erkunden und beispielhafte und bewährte Praktiken anbieten, die Ihnen helfen, APIs zu erstellen, die klar und benutzerfreundlich beschrieben sind. Egal, ob Sie gerade erst anfangen oder Ihre Können verfeinern möchten. Dieser Beitrag wird Ihnen helfen, Ihre API benutzerfreundlicher und angenehmer in der Nutzung zu gestalten.


HTTP-Methoden und Ressourcen


  • GET: Ruft eine Ressource ab

  • POST: Erstellt eine neue Ressource

  • PUT: Aktualisiert eine bestehende Ressource

  • PATCH: Nimmt teilweise Änderungen an einer Ressource vor

  • DELETE: Löscht eine Ressource



Grundlagen der REST-API-Namensgebung


Durch die Kategorisierung von Ressourcen in Archetypen ist die Erstellung eines konsistenten und intuitiven Namensschemas möglich. Dieser Ansatz vereinfacht nicht nur den Entwurfsprozess der API, sondern erleichtert auch Entwicklern das Verständnis und die effektive Nutzung Ihrer API.

Betrachtet man wie verschiedene HTTP-Methoden mit Ressourcen interagieren, helfen Konventionen dabei, die Funktionalität der API klar und verständlich zu präsentieren.

Eine durchdachte Namensstrategie sorgt dabei für Struktur in der API, was die Navigation und Wartung erheblich erleichtert.


Aber was sind nun Ressourcen ?


Während wir zur Darstellung von Ressourcen immer Substantive verwenden, ist eine Ressource in RESTful-APIs ein beliebiges Objekt oder eine beliebige Information, auf die über die API zugegriffen werden kann oder die manipuliert werden kann. Gängige Beispiele für Ressourcen: Benutzer, Aufträge, Produkte.…

Der Zugriff auf Ressourcen erfolgt über URIs (Unified Resource Identifiers).


 

⚠️ Ein kurzer Exkurs zur Auffrischung:

URIs sind Unified Resource Identifier und können URLs und URNs sein:

  • URNs: Uniform Resource Names :  (Zur Identifizierung einer Ressource anhand des Namens und ohne Informationen über den Standort)

  • URLs: Uniform Resource Locators  (Zur Identifizierung der Ressource im Web)

Beispiel  URL: http://example.com/project/5  URN: isbn: 978-3-16-148410-0

Alle URNs und alle URLs sind URIs, aber nicht alle URIs sind URNs oder URLs.

 

Wie bereits angekündigt sind Ressourcen vom typ singleton oder collection.

Beispiel  singleton: /products collection: /products/{product-id}

Außerdem kann eine Ressource eine Sub-Collection-Ressource enthalten, wie im folgenden

Beispiel /students/{student-id}/courses

Wie du vermutlich bemerkt hast, erkennen wir hier students als eine Collection-Ressource und student-id als eine Singleton-Ressource.


Nun lass und singleton und collection zu den folgenden Kategorien zuordnen!


Die drei Kategorien einer Ressource


  • Document




  • Collection




  • Store




Lasst uns gemeinsam die Bedeutung der einzelnen Kategorien entschlüsseln


Document

Die Dokument-Ressource ist eine Singleton-Ressource und daher an ihrer eindeutigen Benennung zu erkennen - daher immer im Singular. Sie ist die einzige Ressource einer Ressourcensammlung.


Collection

Eine Collection-Ressource funktioniert wie ein Verzeichnis, das zusammengehörige Ressourcen gruppiert und vom Server verwaltet wird

Nutzer können die Aufnahme neuer Ressourcen in eine Sammlung beantragen, aber die Entscheidung, eine neue Ressource zu erstellen und aufzunehmen, liegt bei der Sammlung selbst.

Die Collection-Ressource bestimmt sowohl den Inhalt, den sie enthält, als auch die spezifischen URIs, die jeder darin enthaltenen Ressource zugewiesen werden.

Beispiel  /projects/{projectid} projects := Collection projectid := Document

Store

Eine Store-Ressource ermöglicht einem API-Client das Hinzufügen, Entfernen und Löschen von Ressourcen in der Store-Ressource. Es ist jedoch wichtig zu wissen, dass keine neue Ressource im System erstellt wird, wenn etwas zum Store hinzugefügt wird. Genauso wenig wird die Ressource aus dem System gelöscht, wenn wir etwas aus Store löschen.

Mit anderen Worten, es ist gleichbedeutend mit dem Entfernen einer Verknüpfung der Ressource aus dem Store.

Store-Ressourcen stehen immer im Plural.

Beispiel  /song-management/users/{id}/playlists

Benennung von URLs

  • Beschreibe Ressourcen in URLs immer in Kleinbuchstaben :

  • Verwende nie Dateiendungen:

Beispiel  /device-management/managed-devices.xml  // nicht gut  /device-management/managed-devices  // gut
  • Verzichte auf Verben

    ⇒ Verzichte auf die Nutzung der CRUD-Funktionen in URIs, da es Redundanz verringert. Jede HTTP Methode beschreibt an sich bereits was es tut.

Beispiel  HTTP GET: /device-management/get-devices         // nicht gut  HTTP GET: /device-management/managed-devices // gut  HTTP PUT: **/device-management/create-devices       // nicht gut  HTTP PUT: /device-management/managed-devices // gut

Verwendung von Trennzeichen

  • “/”

    • Verwende es nur, um auf hierarchische Beziehungen hinzuweisen. Schließe die URI nie mit einem „/“ ab.

  • “-”

    • Verwendung zur Verbesserung der Lesbarkeit von Bezeichnungen.

  • Verzichte auf “_”

    • Unterstriche können je nach Schriftart oder Bildschirmauflösung schwer zu erkennen oder sogar unsichtbar sein.

Zusammenfassung

Hier sind nochmal alle wichtigen Punkte zusammengefasst:

  • Definition von Ressourcen: Wir haben das Konzept der Ressourcen in REST-APIs erläutert und dabei zwischen Collection und Singleton unterschieden und gezeigt, wie Ressourcen weiter in Document, Collection und Store zugerdnet werden können.

  • Definition der drei Hauptkategorien:

    • Document: Repräsentiert eine einzelne Ressource

    • Collection: Ein Verzeichnis von Ressourcen

    • Store: Eine Ressource, die es ermöglicht, Ressourcen hinzuzufügen oder zu entfernen, ohne den Kernbestand des Systems zu verändern.

  • Bewährte Praktiken für die URI-Benennung

    • Ressourcen in URIs werden immer klein geschrieben

    • Verzicht auf Dateiendungen

    • Verzicht auf Verben


Durch die Einhaltung dieser Namenskonventionen und den bewährten Praktiken können Entwickler REST-APIs erstellen, die nicht nur funktionaler, sondern auch einfacher zu navigieren und zu pflegen sind. Dieser strukturierte Ansatz für die Namensgebung stellt sicher, dass APIs klar und vorhersehbar sind, was den Weg für eine reibungslose Integration und eine bessere allgemeine Nutzerfreundlichkeit ebnet.

4 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen

Comments


bottom of page