Close

JAX-RS - @Produces and @Consumes Examples

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();
}
}
}
Original Post




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}";
}
}
Original Post




See Also