Pular para o conteúdo

Construa um RESTful Web Service usando o JDeveloper 12c

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.

RESTful Web Service

No Step 3, clique em Next.

kMhvlcbaUkk6CL psO9gLkaFsRLsqQqDFi1WFRfXAyM4sQdkrooI16Mc1X3jT p1uP39kEsxBjUac6wGNb7KLrZpZPoMwDNs8IK6q24ObaEjDtZWj 2X9bNcTVYT4 BKcOyD0Tv87H4

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

x0Pe1h5kk62BHyvJfNxKO1QCiu5Vs4RkjuJ9BRdrDrBue71li5GMrJNm0pRnGnnSdYtfY3gFQ Et30E 47gIeXLAvjDHmgV23hK6CiTaVk3zk2imjCdkzs4prbEhsyhB5cfzYm 0KDg

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

S brkLu4nBwZrS4SHQBLkktw6Ot8Qtf LnLqkrhQXuZZwObkUDjZadTionhga2JSNpXzEZr9bE2lvzBk2YmBQU 1iZKEzW9Ipkw z59g2b7hKzwARLNeKk5GOnS QyJBzZ1NfVCZijU

No Step 6, clique em Next.

phC3ui2 r58AWPKCb lmM2reYdFwwDlSob0EDWC SdquC9rvrjQ7tS9zMdFPFaIuNm1d4Gdr18p8E6gBL77MaJgKS3yEGBDzq8ZQ uvGDQpQouZKb XnRDn3WKhnkyYaRTi7TuwYOOw

No Step 7, clique em Finish.

2hBn70AoJpTGYr8GBD3Wig74hn1AouYAfAF68wm6h2tIG wN7hFReS4rpyCAbXvskoCfFQMVRavlWRBMxm3 g72V5 DtZm3 yl 9e7UGitre hvfkC7685jOhkTD7qrDCiydLYR0TDk

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.
kW7kvCgoS7vdq9ZFfs1wiUve0tP9sUnI98J46hQVl7TD4eyIZCk2AOIkEzaseqwZ9gegF ydf35NfEjD E8

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.

RJbVx9ApuBoA08l8InKfMCenCIyObyJr2p6U3V1rJNe8nRIUX3 sYIOyTDI jf0iRw30qdqhLT3O66yf8XBLBXAQ3UZh 66BIKjsyJ7RzoiwBm7EYDPwpFhC3OHg07dE4kHo7AqbkE4

Desmarque todos os métodos e clique em Finish.

P0xeQl5cSdsXn7gBy6Kk0m KdHyZObbs6yDyRPqB6xd2I9AMof2 qERSP0uzd pQo1Smxi9iPvQq9jQ9Nt1Pn8AWYoaaMUyVWByuvxDbtO4E63sQ7v6ZQKVFl f6QeuOlp qQtu5E

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.

sp3YlYx BQA0nIMXsgVoiTU7xLY7KzchTW8bTmJdaYZWx3RauzBGM13Rp3PTpZLPRFcrwvKhHNTuxbDuKA1Umc1K99czmalD3S3KFdhIx6OvJNIOBKwNUWH 9cTx3pHAXa iDMb20SE

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.

G0Zu4xv6E7wSDc4 dE6ZweDEKZj1AKtr4ie6XCd6ATV5eNb7qEvi epjs NAgTN0n3A31xOJsHkhl2Vn7YWZnnJcCeigyqK2pS0q6sxKzQcl2lKl42mFK8v8akV4 KPE6OAvqidmT0U

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


Este é o resultado!

6xRC0ytGZ b9pOFP29eYltgkHk7lWCzAPl0BqOwl5CNfdy7O9nhOf2FDfQ5z7rRs08hYDCI3njly3XEfqKeMMSR E9KOj7yFraWchCurKstJgeIzoZat2POKBAI52fS7am6 scNRXb0


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.

Mpe7x s iUmo HeSkaaUwBpiDQQSRGbsf2rnBnzmHyjWpGuK3BIzE7nseUBFxbt2nuQX zvOA7gBydj1LVE1SVWtgEUJUqsv6Qdi3Wx 6rVhaHEEQePeh6dQtr92AWknZh6Je7eoADs

Waslley Souza

Waslley Souza

Waslley Souza é Oracle ACE Associate e Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle ADF 11g / 12c, WebCenter Portal 11g, SOA Suite 11g e Java.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress