====== Servicios REST con JSON ======
Por defecto, la configuración de //REST// para aplicaciones FundeWeb 2, tiene deshabilitado el mapeo de //POJOs// y clases //JAXB// a //JSON//.
Ahora veamos un ejemplo con un //POJO// para convertir en //JSON//.
public class PistaAudio {
String title;
String singer;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
}
Por último exponemos un método en nuestro servicio //REST// que acepte o devuelva objetos //JSON// usando las anotaciones: //@Consumes//, //@Produces// o ambas. En este ejemplo usamos la anotación //@Produces// indicando que el método devolverá un objeto //JSON//.
@GET
@Path("/json")
@Produces(MediaType.APPLICATION_JSON)
public PistaAudio getPista() {
PistaAudio pista = new PistaAudio();
pista.setTitle("Titulo 1");
pista.setSinger("Cantante 1");
return pista;
}
Tras estos pasos nuestro servicio //REST// tendrá un nuevo método que acepta objetos de tipo //JSON//.
===== Activar la Configuración de Rest con JSON =====
Para poder habilitar la configuración de mapeo automático de //POJOs// (no //JAXB//) a //JSON//, tenemos que editar el fichero //web.xml// y añadir lo siguiente:
com.sun.jersey.api.json.POJOMappingFeature
true
===== Bibliografia y referencias =====
* [[http://docs.oracle.com/middleware/1212/wls/RESTF/deploy-restful-service.htm|Oracle WebLogic Server 12c (12.1.2) - Developing and Securing RESTful Web Services for Oracle WebLogic Server - 4 Packaging and Deploying RESTful Web Services]]
* [[https://jersey.java.net/documentation/1.18/index.html|Jersey 1.18 User Guide]]
* [[https://www.javacodegeeks.com/2018/08/writing-big-json-files-jackson.html|Writing Big JSON Files With Jackson]]