„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Leitfaden zum REST-API-Design und zu Namenskonventionen

Leitfaden zum REST-API-Design und zu Namenskonventionen

Veröffentlicht am 06.11.2024
Durchsuche:212

Guide to REST API Design and Naming Conventions

Das effektive Entwerfen von RESTful APIs ist entscheidend für die Erstellung skalierbarer, wartbarer und benutzerfreundlicher Systeme. Zwar gibt es bestimmte Standards, bei vielen handelt es sich jedoch nicht um strenge Regeln, sondern um Best Practices zur Steuerung des API-Designs. Ein weit verbreitetes Architekturmuster für APIs ist MVC (Model-View-Controller), aber es allein deckt nicht die feineren Aspekte des API-Designs wie Benennung und Struktur ab. In diesem Artikel gehen wir die wesentlichen Richtlinien für die Strukturierung von REST-APIs durch.

  1. Namenskonventionen und ressourcenorientiertes Design APIs werden oft rund um Ressourcen definiert, die Entitäten in Ihrem System darstellen, wie zum Beispiel „Benutzer“, „Produkte“ oder „Bestellungen“. Eine Ressource kann ein einzelnes Element oder eine Sammlung sein, und die API sollte eine intuitive und klare Möglichkeit bieten, mit diesen Ressourcen zu interagieren.

Grundprinzipien:
Ressourcenorientiert: Entwerfen Sie Ihre APIs rund um Ressourcen, nicht um Aktionen. Ressourcen sollten als Substantive und nicht als Verben betrachtet werden. Zum Beispiel:

/users für den Zugriff auf die Benutzersammlung.
/users/{userId} für den Zugriff auf einen bestimmten Benutzer.
Konsistenz: Die API sollte intuitiv sein. Wenn ein Benutzer eine Liste von Ressourcen von /users abrufen kann, sollte er damit rechnen, dass er einzelne Ressourcen abrufen kann, indem er eine Kennung hinzufügt: /users/{userId}.

Sammlung vs. einzelne Ressource:

Eine Sammlung von Ressourcen wird durch ein Substantiv im Plural dargestellt: /users, /products.
Eine einzelne Ressource wird durch Anhängen der eindeutigen Kennung dieser Ressource dargestellt: /users/{userId}, /products/{productId}.

  1. HTTP-Methoden definieren die Aktion, nicht den URI Die ausgeführte Aktion (sei es das Abrufen von Daten, das Erstellen neuer Einträge oder das Aktualisieren vorhandener Daten) sollte nicht in den URI eingebettet sein. Stattdessen bestimmt die HTTP-Methode die Aktion.

Gemeinsame HTTP-Methoden und ihre Anwendungsfälle:
GET: Daten vom Server abrufen.

Beispiel: GET /products gibt eine Liste aller Produkte zurück.
Beispiel: GET /users/{userId} ruft den Benutzer mit der angegebenen Benutzer-ID ab.
POST: Erstellen Sie eine neue Ressource auf dem Server.

Beispiel: POST /users erstellt einen neuen Benutzer.
PUT: Ersetzen Sie eine vorhandene Ressource durch neue Daten (vollständige Aktualisierung).

Beispiel: PUT /users/{userId} ersetzt die Daten des Benutzers vollständig durch neue Daten.
PATCH: Eine vorhandene Ressource teilweise aktualisieren (teilweise Aktualisierung).

Beispiel: PATCH /users/{userId} aktualisiert nur die angegebenen Attribute, wie zum Beispiel eine Telefonnummer.
DELETE: Eine Ressource löschen.

Beispiel: DELETE /users/{userId} löscht den Benutzer mit der angegebenen Benutzer-ID.

  1. Staatenlosigkeit in REST REST-APIs sollten zustandslos sein, was bedeutet, dass jeder API-Aufruf alle Informationen enthalten muss, die der Server zur Verarbeitung der Anfrage benötigt. Dadurch wird sichergestellt, dass jede Anfrage autark ist und nicht von vorherigen Anfragen abhängig ist.

Beispiel: Wenn Sie eine GET-Anfrage zum Abrufen von Benutzerdetails stellen, muss die Anfrage das erforderliche Autorisierungstoken enthalten, auch wenn eine vorherige Anfrage den Benutzer bereits authentifiziert hat. Dies ist in verteilten Systemen von entscheidender Bedeutung, in denen unterschiedliche Anforderungen möglicherweise unterschiedliche Server erreichen.

  1. Serverspezifische Datenspeicherung vermeiden Keine einzelne API-Anfrage sollte auf der Speicherung temporärer Daten auf einem bestimmten Server basieren. In einem verteilten System können eingehende Anfragen an einen beliebigen Server weitergeleitet werden. Daher sollte das gleiche Ergebnis erzielt werden, unabhängig davon, welcher Server die Anfrage verarbeitet. Aus diesem Grund sollten Sitzungszustände nicht auf einzelnen Servern gespeichert werden.

Lösung: Verwenden Sie für die Sitzungsverwaltung zentralisierte oder verteilte Speichersysteme wie Redis oder einen zustandslosen Authentifizierungsmechanismus wie JWT (JSON Web Token).

  1. Ressource vs. Datenbanktabellen Das Design Ihrer API sollte keine Eins-zu-eins-Zuordnung zwischen Datenbanktabellen und API-Endpunkten aufweisen. Die API sollte logische, aussagekräftige Ressourcen bereitstellen, die Daten aus mehreren Tabellen oder Quellen kombinieren können.

Beispiel:
GET /orders/{orderId} könnte Bestelldetails abrufen und Informationen aus den Tabellen „orders“, „order_items“ und „customers“ kombinieren.

  1. Flexibilität bei Datentypen REST-APIs unterliegen keinen Einschränkungen durch die Datentypen oder Tabellenstrukturen Ihrer Datenbank. Sie können Ihre Antworten so strukturieren, dass sie Ihren API-Konsumenten am besten dienen. Während JSON das am häufigsten verwendete Format ist, können Sie Daten bei Bedarf auch in anderen Formaten wie XML oder CSV zurückgeben.

Beispiel: Ein GET /reports/{reportId}-Endpunkt könnte einen Bericht in verschiedenen Formaten (JSON, CSV, PDF) zurückgeben, basierend auf den Abfrageparametern oder Headern in der Anfrage.
Beispiel-API-Struktur
Um alle diese Prinzipien miteinander zu verbinden, finden Sie hier eine Beispiel-API-Struktur, die diesen Best Practices folgt:

GET /products: Ruft alle Produkte ab.
GET /products/{productId}: Ruft Details eines bestimmten Produkts ab.
POST /products: Erstellt ein neues Produkt.
PUT /products/{productId}: Ersetzt das Produkt durch productId.
PATCH /products/{productId}: Aktualisiert das Produkt teilweise.
DELETE /products/{productId}: Löscht das Produkt.
In dieser Struktur sind Ressourcen klar definiert und HTTP-Methoden geben die auszuführende Aktion an, um eine saubere und intuitive API zu gewährleisten.

**Abschluss
**Das Entwerfen von RESTful-APIs umfasst mehr als nur das Erstellen von Routen und die Handhabung von HTTP-Methoden. Indem Sie sich auf Ressourcen konzentrieren, HTTP-Methoden für Aktionen nutzen und sich an die Zustandslosigkeit halten, erstellen Sie APIs, die intuitiv, wartbar und skalierbar sind. Denken Sie daran, dass APIs flexibel und unabhängig von bestimmten Datenbankstrukturen sein sollten, um eine größere Anpassungsfähigkeit zu ermöglichen, wenn Ihr System wächst.

Die Einhaltung dieser Konventionen stellt sicher, dass Ihr API-Design sowohl effizient als auch benutzerfreundlich ist, was letztendlich das Erlebnis sowohl für Entwickler als auch für Verbraucher Ihrer API verbessert.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/rahul_ranjan_7200/guide-to-rest-api-design-and-naming-conventions-46co?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3