Desidero creare un servizio Post su Jersey Rest. Qual è il modo standard per farlo?Jersey Consuma post XML
@Post
@Consumes(MediaType.Application_xml)
public Response method(??){}
Desidero creare un servizio Post su Jersey Rest. Qual è il modo standard per farlo?Jersey Consuma post XML
@Post
@Consumes(MediaType.Application_xml)
public Response method(??){}
Di seguito è un esempio di un'operazione POST:
@POST
@Consumes({"application/xml", "application/json"})
public Response create(@Context UriInfo uriInfo, Customer entity) {
entityManager.persist(entity);
entityManager.flush();
UriBuilder uriBuilder = uriBuiler.path(String.valueOf(entity.getId()));
return Response.created(uriBuilder.build()).build();
}
Supponiamo di avere un bean Java dire un bean dipendente come ad esempio. Aggiungi i tag per dirlo allo
@XmlRootElement (name = "Employee")
public class Employee {
String employeeName;
@XmlElement
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
}
@XmlRootElement indica che questo sarà il tag principale in xml. In questo caso puoi anche specificare un nome per il tag principale.
@XmlElement dice che questo sarebbe il tag sub all'interno del tag radice
Say, il campione XML che verrà come una parte del corpo nella richiesta POST sarà simile
<?xml version="1.0" encoding="UTF-8"?>
<Employee>
<employeeName>Jack</employeeName>
</Employee>
Quando scriviamo un webservice per accettare un tale xml possiamo scrivere il seguente metodo.
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response getEmployee(Employee employee) {
employee.setEmployeeName(employee.getEmployeeName() + " Welcome");
return Response.status(Status.OK).entity(employee).build();
}
Alla chiamata di questo servizio, si riceverà il seguente xml come parte della risposta.
<Employee>
<employeeName> Jack Welcome </employeeName>
</Employee>
utilizzando atributo @xml ... annotazioni, diventa molto facile da unmarshalling e il maresciallo di richiesta e di risposta oggetti.
approccio simile può essere preso per l'ingresso JSON e JSON uscita da solo utilizzando il MediaType.APPLICATION_JSON invece di APPLICATION_XML
Così, per un XML come input, è possibile ottenere un XML come uscita come parte del risposta http. Spero che questo aiuti.
Hmm. Vuoi trasformare un cliente POST in un servizio esistente o implementare un servizio RESTful di Jersey? –