apis gerenciadas de ponta a ponta - construção
Post on 01-Jul-2015
133 Views
Preview:
DESCRIPTION
TRANSCRIPT
Criando um Google App Engine Cloud Endpoint RESTful
Autores: Fábio Rosato fabio.rosato@sensedia.com @frosato José Vahl jose.vahl@sensedia.com @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.
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.
Dê um nome para o projeto no campo “Project Name” e inclua o nome base do pacote dos códigosfontes no campo “Package”. Depois clique em “Finish”.
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.
Abaixo os atributos e utilizados no recurso Restaurantes.
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...
… e depois para a entidade Pratos.
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
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...
...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…”
Se você tentar fazer deploy irá receber o seguinte erro:
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:
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.
A aplicação será compilada, otimizada, entregue e inicializada no Google App Engine. As URLs dos recursos na cloud ficam:
● https://1dotcomidaboteco.appspot.com/_ah/api/restaurantesendpoint/v1/restaurantes ● https://1dotcomidaboteco.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}
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.
top related