KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to build a RESTful API using Spring MVC. I'm shooting for clean and manageable code where the package structure follows the url structure. So here is what I've got: // com.test.api.library @RequestMapping("/library/{libraryId}") public Library getLibrary(@PathVariable long libraryId) { return service.getLibraryById(libraryId); } // com.test.api.library.book @RequestMapping("/library/{libraryId}/book/{bookId}") public Book getBook(@PathVariable long libraryId, @PathVariable long bookId) { Library library service.getLibraryById(libraryId); return library.getBookById(bookId); } While this works, I find it messy and error-prone to have to repeat "/library/{libraryId}" in all inherited @RequestMappings, /library is likely to be to root of a big part of the API and it should be written once and reused instead of written everywhere. I would like to rewrite the book-class to something like this: // com.test.api.library.book @RequestMapping("/book/{bookId}") public Book getBook(@PathVariable long bookId) { // long libraryId magically given to me from the library-class's getLibrary() Library library service.getLibraryById(libraryId); return library.getBookById(bookId); } Is there any way Spring can help me here? It is acceptable for me to use normal java inheritance, spring annotation or anything else that helps me to not write "/library/{libraryId}" as a part of every url I ever write.
Tags (comma-separated)
Save Edits
Cancel