Wir haben eine Spring MVC-Anwendung, die meisten REST-Operationen sind die einzige GET-Operation pro Ressource. Zurzeit haben wir viele Controller mit der einzigen GET-Methode, die sich nicht voneinander unterscheiden (selbst in URLs, Inhaltstypen, Parametern usw.).Pro und Kontra mit einem Controller für mehrere Ressourcen
Um eine solche Duplizierung zu entfernen, bietet unser Teamkollege an, einen Controller mit der einzigen GET-Operation und einer Karte mit Service (Ressourcenname -> Ressourcenservice) zu erstellen.
Aber wir sehen solche Nachteile wie kompliziertere Spring Injection tuning, keine Möglichkeiten, einige Einschränkungen für Inhaltstypen, Parameter hinzuzufügen - Anpassung der Operation in einem Wort. Darüber hinaus gibt es mehrere Ressourcen, die sich in einem separaten Controller befinden. Ich erwarte auch nicht, dass es zumindest einen einfachen Weg gibt, die einzige Methode in Swagger auf verschiedene Arten zu dokumentieren (unterschiedliche Beschreibung).
Also für mich auf der einen Seite ist weniger Code, aber auf der anderen Seite sind die Möglichkeiten der Operation Anpassung, Mischung von Architekturen, Mangel an ordnungsgemäße Dokumentation oder zumindest komplizierte Konfiguration eingeschränkt. Ich halte es nicht für eine gute Methode, eine Methode zu entwickeln.
Bin ich richtig? Wenn ja, wie kann ich es beweisen? Wenn nicht warum? Vielen Dank für Ihre Zeit und Ideen!
Danke implementieren und vergleichen, ich schätze Sie wirklich Zeit, um die Antwort zu machen gefunden! Aber ich sehe keinen architektonischen Unterschied zwischen Vanilla Servlets dann: C dieser Fall scheint der Verwendung von Befehlsmuster ähnlich zu sein –
1. Du reduzierst duplizierten Code, indem du ihn in Eltern AbstractController einführst und 2. du hast Erweiterungspunkte, um behavior zu ändern (der Unterschied Ihr Teamkollege vorschlagen: Single-Controller, die schwer zu erweitern) – ADS
und was ist als Alternative haben einen Controller mit mehreren GET-Methoden? –