Ich entwickle eine komponentenbasierte CRUD-Anwendung mit Spring Data JPA und Spring Data REST. Ich habe mehrere Komponenten. Zum Beispiel hat die system -Komponente das User
-Modell und das UserRepository
. Komponenten werden durch die Paketnamen unterschieden. wie com.example.app.<component_name>
Damit meine REST-API sauberer aussieht, muss ich die API-URL wie folgt implementieren:
host:8080/<component_name>/<model_collection_name>
zum Beispiel
host:8080/system/users
Ich habe Folgendes in meinem Repository
getan %Vor% dies erzeugt folgendes, wenn ich http://localhost:8080
Aber wenn ich http://localhost:8080/system/users
Es gibt einen Fehler
Fr 22. Mai 17:56:37 IST 2015 Es ist ein unerwarteter Fehler aufgetreten (Typ = Nicht Gefunden, Status = 404). Keine Nachricht verfügbar
NOTE : Wenn ich den Pfad system-users
zugeordnet habe, funktioniert es einwandfrei, aber wenn ich% %%% s% im Pfad verwende, zB /
, es bricht und gibt den Fehler.
Nicht unterstützt.
Ganz allgemein: Konzentrieren Sie sich nicht auf das Entwerfen von URLs. Die Struktur eines URI darf per Definition nicht für einen REST-Client von Bedeutung sein:
Zu keiner Zeit muss die Server- oder Client-Software die Bedeutung eines URI kennen oder verstehen - sie fungieren lediglich als ein Kanal, durch den der Ersteller einer Ressource (eine menschliche Namensautorität) Repräsentationen mit der Semantik assoziieren kann durch den URI identifiziert.
(von Roy Fielding - Architectural Styles und das Design netzwerkbasierter Softwarearchitekturen - Abschnitt 6.2.4 )
Wenn Sie diesen Kriterien folgen, achten Sie darauf, Beziehungsnamen auszuwählen, die Repräsentationen für die von Ihnen bereitgestellten Ressourcen zu entwerfen usw.
Das, wonach Sie suchen, wird derzeit nicht unterstützt. Wenn Sie denken, dass es sich lohnt, dieses Feature hinzuzufügen (ich denke, das ist aufgrund des obigen Arguments nicht der Fall), können Sie in unserer ein Ticket öffnen Bug Tracker .
Aufgrund der Funktionsweise von Spring MVC Mapping ist es wahrscheinlich recht schwierig, es zu implementieren, und insbesondere die Kombination der Zuordnung singulärer Pfadsegmente und nicht-singulärer Pfadsegmente kann einige Mehrdeutigkeiten verursachen. All dies macht es eher unwahrscheinlich, dass diese Anfrage weiter verfolgt wird.
Ich denke, dass diese (oder eine ähnliche) Frage bereits beantwortet wurde hier auf stackoverflow.
Legen Sie das Basis-URI mithilfe einer benutzerdefinierten RepositoryRestMvcConfiguration-Klasse fest.
Tags und Links java spring spring-mvc spring-boot spring-data-rest