JAX-RS JAVA EE
import com.logicbig.example.DataService;import com.logicbig.example.Item;import javax.ws.rs.*;import javax.ws.rs.core.Context;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.Response;import javax.ws.rs.core.UriInfo;import java.util.List;@Path("items")public class ItemRestService { @Context private UriInfo uriInfo; private DataService dataService = DataService.getInstance(); @GET @Produces(MediaType.APPLICATION_JSON) public List<Item> getItems() { return dataService.getItemList(); } @Path("{sku}") @PUT @Consumes(MediaType.APPLICATION_JSON) public Response createItem(Item item, @PathParam("sku") String sku) { if (dataService.itemExists(sku)) { //status code 204 return Response.noContent() .build(); } else { dataService.createItem(item, sku); //status code 201 //sends back new URI in header key = 'LOCATION' return Response.created(uriInfo.getAbsolutePath()) .build(); } } @GET @Path("{sku}") @Produces(MediaType.APPLICATION_JSON) public Response getCustomer(@PathParam("sku") String sku) { Item item = dataService.getItemBySku(sku); if (item == null) { return Response.status(Response.Status.NOT_FOUND) .build(); } else { return Response.ok() .entity(item) .build(); } }}
@Path("/")public class MyResource { @Path("/test") @GET public Response handle() { Response r = Response.ok("test with GET, body content") .build(); return r; } @Path("/test2") @GET public Response handle2() { Response r = Response.ok("test2 with GET, body content") .build(); return r; } @Path("/test2") @POST public Response handle3() { Response r = Response.ok("test2 with POST, body content") .build(); return r; } @Path("/test2") @HEAD public Response handle4() { Response r = Response.ok("test2 with HEAD, body content") .build(); return r; } @Path("/test3") @GET public Response handle5() { Response r = Response.ok("test3 with GET, body content") .build(); return r; } @Path("/test3") @OPTIONS public Response handle6() { Response r = Response.ok("test3 with OPTIONS, body content") .header("Allow", "GET") .header("Allow", "OPTIONS") .build(); return r; } @Path("/test4") @DELETE public Response handle7() { Response r = Response.ok("test4 with DELETE, body content") .build(); return r; } @Path("/test4") @PUT public Response handle8() { Response r = Response.ok("test4 with PUT, body content") .build(); return r; }}
public interface AppResource<T> { @PUT @Path("{newId}") @Consumes(MediaType.APPLICATION_XML) String create(T t, @PathParam("newId") long newId); @DELETE @Path("{id}") String delete(@PathParam("id") long id); @POST @Consumes(MediaType.APPLICATION_XML) String update(T t); @GET @Produces(MediaType.APPLICATION_XML) List<T> list(); @GET @Path("{id}") @Produces(MediaType.APPLICATION_XML) T byId(@PathParam("id") long id);}