GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

RESTful Web Service no JDeveloper 12c

Devido o REST (Representational State Transfer) ser leve, simples e flexível, muitos desenvolvedores estão construindo e explorando os RESTful Web Services, tornando-o muito popular, hoje em dia. De acrodo com Roy Fielding, REST é um “estilo arquitetônico” que, basicamente, explora a tecnologia e protocolos existentes da Web. RESTful é normalmente usado para se referir a serviços web que implementam a arquitetura REST.

Neste post, você que vai aprender como construir um RESTful Web Service usando o JDeveloper 12c (12.1.3). Faça o download do aplicativo de amostra: JDevRESTApp.zip.

Crie um Custom Application.

Defina o Application Name como JDevRESTApp, Application Package Prefix como br.com.waslleysouza e clique em Avançar.

Nomeie o projeto como Model, selecione EJB e Java como Project Features e clique em Next.

Mude o Default Package para br.com.waslleysouza.model e clique em Finish.

Crie a Entidade Employees.

Na janela Applications, clique com o botão direito no Projeto Model e escolha New > From Gallery.

Na caixa de diálogo New Gallery, escolha Business Tier > EJB > Entities from Tables e clique em OK.

Na etapa 2 do Criar Entidades de diálogo Tabelas, clique em Next.

No Step 3, clique em Next.

No Step 4, selecione a conexão de banco de dados e clique em Next.

No Step 5, selecione a tabela Employees e clique em Next.

No Step 6, clique em Next.

No Step 7, clique em Finish.

Abra o arquivo Employees.java e execute os seguintes passos:

  • Anote a classe com @XmlRootElement.
  • Eu acho que existe algum bug quando o JDev gera entidades de tabelas, pois a propriedade SALARY não é anotada. Anote-a com @Column(name = “SALARY”).
  • Anote as propriedades employeesList e employees com @XmlTransient. Anote os acessores getEmployeesList e getEmployees também.

Crie o Employees Session Bean.

Na janela Applications, clique com o botão direito no Projeto Model e escolha New > From Gallery.

Na caixa de diálogo New Gallery, escolha Business Tier > Session Bean, e clique em OK.

Na caixa de diálogo Create Session Bean, altere o nome do EJB para EmployeesService e clique em Next.

Desmarque todos os métodos e clique em Finish.

Adicione os seguintes métodos para EmployeesService, EmployeesServiceBean e EmployeesServiceLocal.

public Employees persistEmployee(Employees employee) {

  em.persist(employee);

  return employee;

}

public Employees mergeEmployee(Employees employee) {

  Employees currentEmployee = getEmployee(employee.getEmployeeId());

  if (employee.getEmail() != null) 

    currentEmployee.setEmail(employee.getEmail());

  if (employee.getFirstName() != null)

    currentEmployee.setFirstName(employee.getFirstName());

  if (employee.getLastName() != null)

    currentEmployee.setLastName(employee.getLastName());

  if (employee.getHireDate() != null)

    currentEmployee.setHireDate(employee.getHireDate());

  if (employee.getJobId() != null)

    currentEmployee.setJobId(employee.getJobId());

  if (employee.getPhoneNumber() != null)

    currentEmployee.setPhoneNumber(employee.getPhoneNumber());

  if (employee.getSalary() != null)

    currentEmployee.setSalary(employee.getSalary());

  if (employee.getCommissionPct() != null)

    currentEmployee.setCommissionPct(employee.getCommissionPct());

  return em.merge(employee);

}

public void removeEmployee(Employees employee) {

  employee = em.find(Employees.class, employee.getEmployeeId());

  em.remove(employee);

}

@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)

public List<Employees> getEmployees() {

  return em.createNamedQuery("Employees.findAll", Employees.class).getResultList();

}

public Employees getEmployee(Integer employeeId) {

  if (employeeId != null) {

    return em.find(Employees.class, employeeId);

  }

  return null;

}

Crie um REST Web Service Project.

No Step 1, clique em Next.

No Step 2, altere o Default Package para br.com.waslleysouza.webservice e clique em Finish.

Clique duas vezes no Projeto WebService, adicione o Projeto Model como Dependent Project, e clique em OK.

Crie o Employees RESTful Service.

Na janela Applications, clique com o botão direito no Projeto Rest e selecione New > From Gallery.

Na caixa de diálogo New Gallery, escolha General > Java Class e clique em OK.

Na caixa de diálogo Create Java Class, altere o nome para EmployeesResource e clique em OK.

Copie o seguinte código dentro de sua classe:

@Stateless

public class EmployeesResource {

  @EJB

  EmployeesServiceLocal employeesService;

  public EmployeesResource() {

    super();

  }

  public void create(Employees employee) {

    employeesService.persistEmployee(employee);

  }

  public void update(Employees employee) {

    employeesService.mergeEmployee(employee);

  }

  public void delete(int id) {

    Employees employee = getById(id);

    if (null != employee) {

      employeesService.removeEmployee(employee);

    }

  }

  public Employees getById(int id) {

    return employeesService.getEmployee(id);

  }

  public List<Employees> findAll() {

    return employeesService.getEmployees();

  }

}

Na janela Applications, clique com o botão direito na classe EmployeesResource e escolha Create RESTful Service.

Escolha JAX-RS 2.0 Style e clique em Next.

Configure o RESTful Service e clique em Finish.

Na caixa de diálogo Return Type Warning, clique em OK.


Este é o resultado!


Feito!

Para testar o RESTful Service, clique com o botão direito na classe EmployeesResource e escolha Test Web Service.

Você pode testar cada operação de serviço utilizando o HTTP Analyzer.

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.