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.POST; 8 import javax.ws.rs.Path; 9 import javax.ws.rs.Produces; 10 import javax.ws.rs.core.Context; 11 import javax.ws.rs.core.HttpHeaders; 12 import javax.ws.rs.core.MediaType; 13 import javax.ws.rs.core.Response; 14 import java.util.Iterator; 15 import java.util.List; 16 17 @Path("fruit") 18 @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 19 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 20 @Singleton 21 public class EntityResource 22 { 23 @POST 24 @AnonymousAllowed 25 public Response applesForOranges(final Orange orange, @Context HttpHeaders headers) 26 { 27 return Response.ok(new Apple("apple-" + orange.getName(), 28 toString(headers, "Content-Type"), 29 toString(headers, "Accept") 30 )).build(); 31 } 32 33 private String toString(HttpHeaders headers, String headerName) 34 { 35 List<String> vals = headers.getRequestHeader(headerName); 36 if (vals.isEmpty()) 37 { 38 return "N/A"; 39 } 40 Iterator<String> it = vals.iterator(); 41 StringBuilder buff = new StringBuilder(it.next()); 42 while (it.hasNext()) 43 { 44 buff.append(",").append(it.next()); 45 } 46 return buff.toString(); 47 } 48 }