TDSI – Web Services com GlassFish, JTA / JPA e JSON – parte 6

Antes leia:

TDSI – Web Services com GlassFish, JTA / JPA e JSON – parte 5

Como visto no artigo anterior, foi adicionado anotações Jackson na classes Marca.java e Modelo.java.  Agora vamos utilizá-los no Web Service TdsiResource.java .

Abaixo como está o código TdsiResource.java: (imports estão omitidos)

package services;

import ...

@Path("tdsi")
public class TdsiResource {

 @Context
 private UriInfo context;

 private final EntityManagerFactory factory;
 private final EntityManager manager;

 public TdsiResource() {
  factory = Persistence.createEntityManagerFactory("tdsiWSPU");
  manager = factory.createEntityManager();
 }

 @GET
 @Produces("application/json")
 public String getJson() {
  //TODO return proper representation object
 throw new UnsupportedOperationException();
 }

 @PUT
 @Consumes("application/json")
 public void putJson(String content) {
 }
}

Agora vamos alterar o código para acessar o banco de dados e transformar a classe Marca.java em objeto JSON com o Jackson. Serão adicionados os seguintes códigos:

@Path("/listarmarca")

Esta anotação adiciona uma nova rota, ou seja o link para acesso é:

http://localhost:8080/tdsiWS/webresources/tdsi/listarmarca

Foi adicionado o acesso JPA para acessar a marca 1, no caso FORD.

Marca marca = new Marca();
marca = manager.find(Marca.class,Long.parseLong(“1”));
manager.close();

Código para instanciar o Jackson.

ObjectMapper mapper = new ObjectMapper();

Declaração da variável que vai receber a string JSON.

String saidajson = null;

Transformação do código JPA em JSON e foi retirado o código antigo 

try {

saidajson = mapper.writeValueAsString(marca);
} catch (JsonProcessingException ex) {
Logger.getLogger(TdsiResource.class.getName()).log(Level.SEVERE, null, ex);
}
return saidajson;

Como ficou agora o código:

package services;

import ...

public class TdsiResource {

 @Context
 private UriInfo context;

 private final EntityManagerFactory factory;
 private final EntityManager manager;

 public TdsiResource() {
  factory = Persistence.createEntityManagerFactory("tdsiWSPU");
  manager = factory.createEntityManager();
 }

 @GET
 @Path("/listarmarca")
 @Produces("application/json")
 public String getJson() {

  Marca marca = new Marca();
  marca = manager.find(Marca.class,Long.parseLong("1"));
  manager.close();

  ObjectMapper mapper = new ObjectMapper();

  String saidajson = null;

  try {
    saidajson = mapper.writeValueAsString(marca);
  } catch (JsonProcessingException ex) {
           Logger.getLogger(TdsiResource.class.getName()).log(Level.SEVERE, null, ex);
 }

  return saidajson;

 }

 @PUT
 @Consumes("application/json")
 public void putJson(String content) {
 }
}

Para testar o resultado acesssar:

 http://localhost:8080/tdsiWS/webresources/tdsi/listarmarca

Link do código completo TdsiResource.java

Clique aqui para o próximo: Parte 7

Esse post foi publicado em Web Services Java Rest. Bookmark o link permanente.

Deixe um comentário