2 Stimmen

RESTful MVC-Anwendung

Ich schreibe gerade meine erste MVC-Webanwendung und versuche, sie so lehrbuchmäßig und RESTful wie möglich zu halten.

Es handelt sich im Grunde um ein Kundenbestellsystem. Ich habe die folgenden URLs, die zu den folgenden Controllermethoden geleitet werden

url - controller - methode

/customers customer-controller index (zeigt eine Liste aller Kunden)

/customers/1 customer-controller view (zeigt die Details des Kunden mit id = 1)

/orders order-controller index (zeigt eine Liste aller Aufträge)

/orders/1 order-controller view (zeigt die Details der Bestellung mit order_no = 1)

Ich möchte eine Seite hinzufügen, die eine Liste der Bestellungen anzeigt, die mit einem bestimmten Kunden unter der URL: /Kunden/1/Bestellungen. Was ich nicht sicher bin, ist, welcher Controller dies zuordnen sollte und welche Methode.

Sollte es in den Kunden-Controller, in den Bestell-Controller oder sollte es einen neuen Kunden-Bestellungen-Controller geben?

Jede Hilfe, jeder Ratschlag, jeder Kommentar ist sehr willkommen,

danke

jim

2voto

tereško Punkte 57124

So wie ich das sehe, wenden Sie einfach einen Filter auf die Liste aller Aufträge an. Und aus diesem Grund wäre es sinnvoller, die Orders Controller.

Außerdem sollten Sie Ihre Weiterleitungspolitik überdenken. Meiner Meinung nach wäre es besser, etwas wie dieses zu haben: /:controller((/:action)/:id) mit Standardwert index o list für die Aktion. Hier sind Beispiele für dieses Muster zu sehen:

/orders               << all of the orders
/orders/customer/2    << data for customer_id = 2
/orders/locations     << orders , ordered by location
/orders/customer      << orders , ordered by customer
/customers            << all curomers
/order/details/1      << info for single order with id = 1

Es wäre gut, wenn Sie untersuchen würden, wie Kohana3 die Weiterleitung vornimmt. Trotz aller Probleme ist das Routing eine der besten Funktionen, die es gibt.

Nun nur meine zwei Meinungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X