apis gerenciadas de ponta a ponta - construção

15
Criando um Google App Engine Cloud Endpoint RESTful Autores: Fábio Rosato [email protected] @frosato José Vahl [email protected] @josevahl Documentação disponível em: http://goo.gl/vZEo6v Premissas As ferramentas utilizadas no cursos são as seguintes, com os respectivos links para download: Java 7+ http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse IDE for Java EE Developers https://www.eclipse.org/downloads/ Google Plugin for Eclipse https:/ /developers.google.com/eclipse/ Postman ou SoapUI http://www.getpostman.com/ http://www.soapui.org/ Além disso é imprescíndivel ter uma conta Google para a realização do deploy da aplicação ou endpoint no Google App Engine. A conta deve estar configuração no no Google Eclipse Plugin.

Upload: fabio-rosato

Post on 01-Jul-2015

130 views

Category:

Software


0 download

DESCRIPTION

Guia com passo a passo para criar um Google App Engine Cloud Endpoint RESTful.

TRANSCRIPT

Page 1: APIs gerenciadas de ponta a ponta - construção

Criando um Google App Engine Cloud Endpoint RESTful

 

Autores: Fábio Rosato ­ [email protected] ­ @frosato José Vahl ­ [email protected] ­ @josevahl 

Documentação disponível em:

http://goo.gl/vZEo6v 

Premissas  As ferramentas utilizadas no cursos são as seguintes, com os respectivos links para download: 

● Java 7+ ○ http://www.oracle.com/technetwork/java/javase/downloads/index.html 

● Eclipse IDE for Java EE Developers ○ https://www.eclipse.org/downloads/ 

● Google Plugin for Eclipse ○ https://developers.google.com/eclipse/ 

● Postman ou SoapUI ○ http://www.getpostman.com/ ○ http://www.soapui.org/ 

 Além disso é imprescíndivel ter uma conta Google para a realização do deploy da aplicação ou endpoint no Google App Engine. A conta deve estar configuração no no Google Eclipse Plugin.  

Page 2: APIs gerenciadas de ponta a ponta - construção

Criando um projeto Google App Engine  Clique em File => New => Other… para criar um projeto do tipo Web Application Project.  

  Selecione no Wizard o tipo de projeto Google Web Application Project. 

 

Page 3: APIs gerenciadas de ponta a ponta - construção

Dê um nome para o projeto no campo “Project Name” e inclua o nome base do pacote dos códigos­fontes no campo “Package”. Depois clique em “Finish”. 

  

    

Page 4: APIs gerenciadas de ponta a ponta - construção

Abaixo a estrutura do projeto ComidaBoteco criada: 

  Agora vamos criar as entidades que serão os recursos da nossa API. Vamos utilizar uma classe de entidade para Restaurantes e outra para Pratos. 

 

Page 5: APIs gerenciadas de ponta a ponta - construção

Abaixo os atributos e utilizados no recurso Restaurantes.  

  

  

Page 6: APIs gerenciadas de ponta a ponta - construção

Abaixo os atributos do recurso Pratos.  

  

Isto é tudo que precisamos para persistir no lado do servidor os objetos Restauntes e Pratos. Agora vamos utilizar um gerador de código que vem com o Google Eclipse Plugin para criar um appengine cloud endpoint.  Clique com o botão direto sobre a classe e selecione "Create Cloud Endpoint Class" (tal como na imagem abaixo).  Vamos fazer isso para a entidade Restaurantes...  

 

Page 7: APIs gerenciadas de ponta a ponta - construção

  

… e depois para a entidade Pratos.  

  

Page 8: APIs gerenciadas de ponta a ponta - construção

O plugin criou três arquivos. Um para o lado da persistência dos dados (EMF.java), outro que expõe as operações CRUD da classe Restaurantes (RestaurantesEndpoint.java) e outro para Pratos (RestaurantesEndpoint.java).  Isto é tudo pessoal! Vamos iniciar a e acessar localmente a API.  

Execução local da API  Execute o projeto como “Web Application” e será iniciado um servidor AppEngine local.  

  Pronto sua API já está disponível localmente.  

Acessando a API  Existem um número de APIs expostas pelo appengine, e elas estão rodando sobre a URL _ah/api.  Vamos acessar o Discovery API, acessível via:  http://localhost:8888/_ah/api/discovery/v1/apis  

Page 9: APIs gerenciadas de ponta a ponta - construção

 

 Esta é a lista de todas REST APIsThis espostas pelo noso servidor. Existem duas APIs, a RestaurantesEndpoint e a PratosEndpoint. Nós podemos navegar nelas nos links abaixo:  http://localhost:8888/_ah/api/discovery/v1/apis/restaurantesendpoint/v1/rest  (referenciado pelo campo "discoveryLink".  Que retorna um host de informações sobre o endpoint da API de Restaurantes... 

 

Page 10: APIs gerenciadas de ponta a ponta - construção

...e http://localhost:8888/_ah/api/discovery/v1/apis/pratosendpoint/v1/rest  

  Nós podemos testar as APIs utilizando o Postman ou SoapUI. 

Deploy da API  Agora vamos realizar o deploy da aplicação na cloud do Google. Com o projeto selecionado clique no ícone do Google, conforme a imagem abaixo e selelecione a opção “Deploy to App Engine…”  

Page 11: APIs gerenciadas de ponta a ponta - construção

  Se você tentar fazer deploy irá receber o seguinte erro:  

  

 

Page 12: APIs gerenciadas de ponta a ponta - construção

O erro ocorre, pois precisamos criar um aplicação no Google App Engine para termos um Application ID. Para criar a aplicação acesse o link: https://appengine.google.com/ e crie uma aplicação com o mesmo Application ID definido nas configurações da aplicação, clicando no botão “Create Application”.  

  Preencha os campos “Application Identifier” e “Application Title”. O Application Identifier é que iremos utilizar no Google Eclipse Plugin para referenciar a aplicação na cloud e realizarmos o deploy.  

  Se tudo correu bem você receberá a seguinte mensagem: 

Page 13: APIs gerenciadas de ponta a ponta - construção

  

Voltando no Eclipse, clique em “App Engine Project Settings…” e preencha o campo “Application ID” com o valor que você utilizou para o popular o campo “Application Identifier”.  

  Agora está tudo ok para a realização do deploy. 

Page 14: APIs gerenciadas de ponta a ponta - construção

   

A aplicação será compilada, otimizada, entregue e inicializada no Google App Engine.  As URLs dos recursos na cloud ficam: 

● https://1­dot­comida­boteco.appspot.com/_ah/api/restaurantesendpoint/v1/restaurantes ● https://1­dot­comida­boteco.appspot.com/_ah/api/pratosendpoint/v1/pratos 

 A lista completa de operações são:  Restaurantes 

● obter um restaurante => GET: /restaurantes/{nome} ● inserir um restaurante => POST: /restaurantes/ ● lista de restaurantes => GET: /restaurantes/ ● excluir um restaurante => DELETE: /restaurantes/{nome} ● atualizar um restaurante => PUT: /restaurantes/{nome} 

 

Page 15: APIs gerenciadas de ponta a ponta - construção

Pratos ● obter um restaurante => GET: /pratos/{nome} ● inserir um prato => POST: /pratos/ ● lista de pratos => GET: /pratos/ ● excluir um prato => DELETE: /pratos/{nome} ● atualizar um prato => PUT: /pratos/{nome} 

 Você pode utilizar e testar os endpoints com a linha de comando CURL ou Postman ou o SOAPUI.