1. Create a rest folder with Jaxrsconfiguration.java:
Package com.pluralsight.bookstore.rest; Import Javax.ws.rs.ApplicationPath; Import javax.ws.rs.core.Application; @ApplicationPath ( "API") Public class extends Application {}
2. Create Endpoint File:BookEndpoint.java:
@Path ("/books")publicclass bookendpoint { @Inject Private bookrepository bookrepository;}
Packagecom.pluralsight.bookstore.rest;ImportCom.pluralsight.bookstore.model.Book;Importcom.pluralsight.bookstore.repository.BookRepository;ImportJavax.inject.Inject;Importjavax.validation.constraints.Min;Importjavax.ws.rs.*;ImportJavax.ws.rs.core.Context;ImportJavax.ws.rs.core.Response;ImportJavax.ws.rs.core.UriInfo;ImportJava.net.URI;Importjava.util.List;Import StaticJavax.ws.rs.core.MediaType.APPLICATION_JSON;//Api/books@Path ("/books") Public classBookendpoint {@InjectPrivatebookrepository bookrepository; @POST @Consumes (Application_json) PublicResponse createbook (book book, @Context uriinfo uriinfo) { Book=bookrepository.create (book); URI Createeduri=uriinfo.getbaseuribuilder (). Path (Book.getid (). toString ()). build (); returnresponse.created (Createeduri). build (); } @GET @Produces (Application_json) PublicResponse getbooks () {List<Book> books =Bookrepository.findall (); if(books.size () = = 0) { returnresponse.nocontent (). build (); } returnResponse.ok (books). build (); } @GET @Path ("/{id: \\d+}") @Produces (Application_json) PublicResponse GetBook (@PathParam ("id") @Min (1) (Long id) { book Book=bookrepository.find (ID); if(Book = =NULL) { returnResponse.Status (Response.Status.NOT_FOUND). build (); } returnResponse.ok (book). build (); } //Api/books/count@GET @Path ("/count") PublicResponse countbooks () {Long nbofbooks=Bookrepository.countall (); if(Nbofbooks = = 0) { returnresponse.nocontent (). build (); } returnResponse.ok (nbofbooks). build (); } @DELETE @Path ("/{id: \\d+}") PublicResponse Deletebook (Long id) {bookrepository.delete (ID); returnresponse.nocontent (). build (); }}
[Java EE] Implement a REST Endpoint