Frage

Ich habe ein anständiges Verständnis für erholsame URLs und die gesamte Theorie hinter den Nesting -URLs, aber ich bin mir immer noch nicht ganz sicher, wie dies in einer Enterprise -Anwendung aussieht, wie so etwas wie Amazon, Stackoverflow oder Google ...

Google hat solche URLs:

Amazon so:

Und stackoverflow so:

Meine Frage ist also, was Best Practice für das Erstellen von URLs für Systeme wie diese ist? Wann beginnen Sie mit der Speicherung von Parametern in der URL, wann nicht wahr? Diese großen Unternehmen scheinen die Regeln nicht zu befolgen, die in der Ruby -Community so heiß diskutiert werden (dass Sie zum Beispiel nie URLs nisten sollten) Es scheint, als würde die Idee, URLs nicht zu nisten, in etwas größerem als einem Blog zusammenbricht.

Irgendwelche Tipps?

War es hilfreich?

Lösung

Lassen Sie sich nicht zu sehr von den "Regeln" in der Ruby -Community festgefahren. Die Idee ist, dass Sie beim Verschachteln von URLs nicht über Bord gehen sollten, aber wenn sie angemessen sind, haben sie aus einem bestimmten Grund in das Rails -Framework eingebaut: Verwenden Sie sie.

Wenn eine Ressource immer in eine andere Ressource fällt, nisten Sie sie. Daran ist nichts auszusetzen. Tiefer zu gehen als man kann manchmal ein bisschen schmerzhaft sein, da Ihre Routenpfade sehr lang sind und ein bisschen verwirrend werden können.

Verwechseln Sie auch nicht das Nisten mit dem Namespagieren. Nur weil Sie example.com/admin/products/1234/edit sehen, heißt das nicht, dass eine Verschachtelung stattfindet. Routing kann die Dinge verschachtelt aussehen lassen, wenn sie tatsächlich nicht auf Codeebene sind.

Ich persönlich bin ein großer Fan von Nisting und benutze es oft (nur eine Ebene - gelegentlich zwei) in meinen Anwendungen. Das Hinzufügen von URLs im Permalink -Stil, die Wörter verwenden, anstatt nur IDs, sind visuell ansprechender und können bei SEO helfen, unabhängig davon, ob sie verschachtelt sind oder nicht.

Andere Tipps

Ich glaube, das Argument für oder gegen Ruhe und/oder Nesting in Ihren Wegen hat viel damit zu tun, wie Sie Ihre API aufdecken möchten. Wenn Sie sich nicht öffentlich eine API für Ihre App enthüllen möchten, ist ein Argument vorgenommen, dass die strikte Einhaltung von Rastful -Design eine Zeitverschwendung ist, insbesondere wenn Sie mit der Begründung hinter Ruhe nicht einverstanden sind. Deine Entscheidung.

Ich finde, dass ich darüber nachdenke, wie ein Kunde (außer einem Browser) von Ihrer App auf Informationen zugreifen kann. Einer der größten Vorteile des Nachdenkens über das Design Ihrer App aus API -Sicht besteht darin, dass Sie dazu neigen, unnötige Komplexität zu beseitigen. Für mich ist dies die Wurzel der Vorsichtsmaßnahmen, die Sie in der Rails -Community rund um verschachtelte Strecken hören. Ich würde es als Hinweis darauf annehmen, dass die Dinge etwas kompliziert werden und es könnte an der Zeit sein, zurückzutreten und den Ansatz zu überdenken. Systeme "größer als ein Blog" müssen nicht von Natur aus komplex sein. Einige Teile mögen aber auch überrascht sein, wenn Sie sich dem Design aus einer anderen Perspektive nähern.

Kurz gesagt, betrachten Sie einen Teil des Dogmas, das Sie möglicherweise von bestimmten Teilen der Gemeinde als Führer hören und signalisieren, dass Sie möglicherweise tiefer über Ihr Design nachdenken möchten. Strikte Ruhe ist einfach eine weitere Möglichkeit, darüber nachzudenken, wie Sie Ihre Anwendung strukturieren.

Das erste, was zu erkennen ist, ist, dass Rails, wenn Sie sich die Beispielanwendungen und den Beispielcode ansehen, nur für den Bau von Blogs und Einkaufswagen gut geeignet ist.

Als nächstes werden Sie erkennen, dass die Menschen, die unruhige URLs und Routen ohne Nesting befürworten, wahrscheinlich nur Blogs und Einkaufswagen bauen.

Irgendwann wird es Erleuchtung geben und Sie werden akzeptieren, dass erholsame URLs und nicht abgesteuerte Routen ein Haufen Bullshit sind, und dann können Sie Ihre Bewerbung tatsächlich aufbauen und Arbeit erledigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top