Я пытаюсь понять REST и JAX-RS / JAXB, у меня есть отношения многие ко многим между библиотеками и книгами. Я хочу выполнить операции GET-POST-PUT-DELETE для книги, принадлежащей библиотеке, поэтому URL для GET - "библиотеки / {library_id} / books / {book_id}"
Я реализовал это так:
@Stateless
@Path("libraries")
public class LibraryFacadeREST extends AbstractFacade<Library> {
...
@Path("{library_id}/booksFacade/")
public BookFacadeREST getBookFacade() {
return bookFacadeREST;
}
...
}
@Stateless
@Path("books")
public class BookFacadeREST extends AbstractFacade<Book> {
...
@GET
@Path("{id}")
@Produces({"application/xml", "application/json"})
public Book find(@PathParam("id") Long id, @PathParam("library_id") long libraryId) {
Book book = super.find(id);
if (libraryId != -1) {
Library library = em.find(Library.class, libraryId);
if (book.getLibraries().contains(library)) {
return book;
} else {
return null;
}
}
return null;
}
...
}
Но мне это не нравится, это отстой, есть ли лучшие способы управления собственными ресурсами в jaxrs?