JAX-RS JAVA EE
import com.logicbig.example.Item;import com.logicbig.example.DataService;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) { System.out.println(item); if (dataService.itemExists(sku)) { //status code 204 System.out.println("no content"); return Response.noContent() .build(); } else { dataService.createItem(item, sku); //status code 201 //sends back new URI in header key = 'LOCATION' System.out.println("good"); 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(); } }}
import javax.ws.rs.*;@Path("orders")@Produces("text/plain")@Consumes("text/plain")public class OrderService { @GET @Path("{orderId}") public String getOrderAsTextById2( @PathParam("orderId") String orderId) { return "returning order with id " + orderId; } @GET @Path("{orderId}") @Produces("application/json") public String getOrderAsHtmlById( @PathParam("orderId") String orderId) { //returning JSON response return "{\"orderId\": \"" + orderId + "\", \"customer\": John}"; }}