2016-07-05 22 views
-1

Ich habe über REST-API-Spezifikationen gelesen. Dies sind die Prinzipien:REST-API und nicht-REST-API

  1. alles ist eine Ressource
  2. jede Ressource durch eine eindeutige Kennung identifizierbar ist
  3. die Standard-HTTP-Methoden verwenden

Nehmen wir nun an gibt es eine Tabelle für Kontaktdaten

id , owner, contact name,contact number, created At 

Ich möchte eine API entwerfen, um die Daten zu konsumieren. Ich kann die API auf folgende Weise gestalten.

Für den Kontakt von Inhaber bekommen

Get /contact/owner/david 

oder

Get /getContactByOwner?ownerName="david" 

Für in der Tabelle zu schreiben

post /contact/owner 

{contactDetail JSON in request param} 

oder

post /addToContact?owner="john"&... 

Welcher Entwurf ist RESTful? Was stimmt nicht mit dem anderen?

+0

Ist es falsch, nach Best Practices und Meinungen von erfahrenen Programmierern zu fragen? Wird stackoverflow nur zur Korrektur von Syntaxfehlern verwendet? @Abwähler. –

+0

* "Viele gute Fragen erzeugen ein gewisses Maß an Meinungen auf der Grundlage von Expertenerfahrung, aber Antworten auf diese Frage werden eher auf Meinungen als auf Fakten, Referenzen oder spezifischer Expertise basieren." * Es gibt auch Duplikate: http : //stackoverflow.com/q/1619302/3001761 – jonrsharpe

+0

In meiner Frage fragte ich, welches Design erholsam ist. Wenn beide ruhig sind, dann ist es auch eine gültige Antwort, wenn sie durch den Grund unterstützt wird. Jede Möglichkeit kann durch Fakten und Referenzen gestützt werden, die die Spezifikation stützen. Ich verwende keine mehrdeutige Sprache. @Jonrsharpe. –

Antwort

1

Die Faustregel mit RESTful Namenskonventionen ist, Substantive als Ihre Endpunkte zu verwenden (da Ihre Verben begrenzt sein sollten, um/post/put/delete/etc). In Ihrem Beispiel wären also Get contact/owner/david und Post contact/owner vorzuziehen. Wenn Sie jedoch wirklich mit REST-Architektur verwenden, sollten Sie technisch HATEOAS (Hypertext-as-the-Engine-of-Application-Status) und Links in XML oder HTML-Antworten verwenden, wenn Sie also JSON verwenden Es ist wahrscheinlich eher REST-artig im Gegensatz zu ausgewachsenen REST. Am Ende des Tages ist alles eine Frage der Präferenz; Versuchen Sie einfach, alles zu verwenden, was den Bedürfnissen der Benutzer der Anwendung entspricht, und zwar auf eine Art und Weise, die selbstdokumentierend und intuitiv ist.

Verwandte Themen