2016-10-09 7 views
0

Angenommen, ich habe einen Händler "Konto" ... Wir haben die typischen /api/v1/merchantaccountPOST, PUT und DELETE.Modell REST Service

Jeder Händler kann mehrere Benutzer haben. Dies sind die Benutzer des Händlers, wie: Admins, Schreiber, Mitarbeiter, NICHT Käufer des Händlers.

erstelle ich den Händler Benutzer-Endpunkt unter: /api/v1/merchantaccount/user und biete PUT, POST, DELETE

Oder implementiere ich einen kompletten separaten Service: /api/v1/merchantuser

Auch wenn ich den Benutzer Händler authentifizieren soll ich getrennte erstellen Endpunkt oder gleich bleiben?

/api/v1/merchantaccount/user/authenticate

vs

/api/v1/merchantuser/autneticate

+0

Beide Wege sind in Ordnung. Die Authentifizierung darf keine serverseitige Sitzung erstellen. – inf3rno

+0

Vielleicht sollte ich es ein wenig aufräumen. Die Wege sollen zeigen, ob ich physisch als 2 Service/api oder nur 1 trennen sollte. Manchmal habe ich das Gefühl, dass REST zu nichts kommt – user432024

Antwort

0

Ich denke, es gibt zwei verschiedene Begriffe hier im Spiel:

  1. Der Name (Ressource) des Endpunkts: wenn das der einzige benutzerbezogene Ressource/Endpunkt, die Ihre API haben wird, dann sollte es User sollte gut sein.
  2. Der Pfad, über den zugegriffen werden kann: Wenn das Use-Case-Szenario nur die Benutzer auf die Website/API und Login erfordert, dann gibt es keinen Grund dafür, dass sie die Entität MerchantAccount durchlaufen müssen (die Verbindung zwischen a Händler und ein Benutzer wird wahrscheinlich während der Registrierung eingestellt)
+0

Ich benutze die URI, um zu demonstrieren, ob ich als 2 separate physische API/Apps/Dienste behandeln sollte . – user432024

+0

mit Blick auf die [Richardson Reifegrad-Modell-Ebene 1] (http://martinfowler.com/articles/richardsonMaturityModel.html#level1), würde ich sagen, ja, der "Händler" (Konto) und seine "Benutzer" sind zwei verschiedene entities –

+0

Auch um diese Verbindung zwischen Händler und Benutzer zu machen, warum gehen Sie durch 2 separate Apis. Wann kannst du es in 1 Schuss machen? – user432024