1 package com.atlassian.plugins.rest.sample.entities; 2 3 import com.atlassian.plugins.rest.common.security.AnonymousAllowed; 4 import com.sun.jersey.spi.resource.Singleton; 5 6 import javax.ws.rs.Consumes; 7 import javax.ws.rs.GET; 8 import javax.ws.rs.POST; 9 import javax.ws.rs.Path; 10 import javax.ws.rs.Produces; 11 import javax.ws.rs.core.Context; 12 import javax.ws.rs.core.HttpHeaders; 13 import javax.ws.rs.core.MediaType; 14 import javax.ws.rs.core.Response; 15 16 import java.util.Date; 17 import java.util.Iterator; 18 import java.util.List; 19 20 @Path("fruit") 21 @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 22 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 23 @Singleton 24 public class EntityResource { 25 @POST 26 @AnonymousAllowed 27 public Response applesForOranges(final Orange orange, @Context HttpHeaders headers) { 28 return Response.ok(new Apple("apple-" + orange.getName(), 29 toString(headers, "Content-Type"), 30 toString(headers, "Accept") 31 )).build(); 32 } 33 34 private String toString(HttpHeaders headers, String headerName) { 35 List<String> vals = headers.getRequestHeader(headerName); 36 if (vals.isEmpty()) { 37 return "N/A"; 38 } 39 Iterator<String> it = vals.iterator(); 40 StringBuilder buff = new StringBuilder(it.next()); 41 while (it.hasNext()) { 42 buff.append(",").append(it.next()); 43 } 44 return buff.toString(); 45 } 46 47 @GET 48 @AnonymousAllowed 49 @Path("jackfruit") 50 public JackFruit get() { 51 return new JackFruit("fresh at " + new Date()); 52 } 53 }