Close

JAX-RS - @PUT Examples

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




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




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




See Also