API Rest, Google Cloud Endpoints, e Firebase são plataformas para criar backends para aplicativos móveis. API Rest usa URIs e recursos comuns como POST, GET, PUT e DELETE, geralmente em JSON. Cloud Endpoints facilita criar APIs no App Engine com autenticação OAuth. Firebase oferece um banco de dados em tempo real e autenticação para aplicativos móveis e web.
4. API Rest - Análise
Api | RESTFul
• Baseia-se em URIs e Recursos
• Aproveita as operações comuns de POST,
GET, PUT, DELETE
• Mais simples de usar e leve que SOAP
• Normalmente usa JSON
API
iOS
5. RESTFul - URI
Api | RESTFul
http://api.compania.com/nome-api/v1/recursoURl:
HTTP
ou
HTTPS
seu
domínio
nome da
API
(opcional)
versão recursos e
parâmetros
6. RESTFul - Operações/Recursos
Api | RESTFul
GET /clientes consulta todos os clientes
GET /clientes/{id} consulta um cliente pelo ID
POST /clientes insere um novo cliente
PUT /clientes/{id} atualiza um cliente pelo ID
DELETE /clientes/{id} deleta um cliente pelo ID
7. API Rest - Filtro e Paginação
Api | RESTFul
GET /clientes?nome=fulano
Filtro
Paginação
GET /clientes?_offset=50&_limit=25
8. RESTFul - Status & Error Codes
Api | RESTFul
2xx Sucesso
200 OK
201
Create
d
4xx Erro no client 5xx Erro no server
400 Bad
Request
401
Unauthori
zed
403
Fordidde
n
404 Not
Found
GET /cliente/99
404 Not Found
{
"status": 404,
"message": "cliente não encontrado"
}
500 Internal Server Error
GET /cliente/1
200 OK
{
"id": 1,
"nome": "Fulano",
"cpf": "99999999999",
"cidade": "Campinas"
}
9. API Rest - Segurança
Api | RESTFul
• Acesso não autorizado
• Sobrecarga
• OAuth 2.0
11. Google Compute Engine - Características
Compute | App Engine
• Infrastructure-as-a-Service
• Máquinas virtuais de alta performance que
rodam na infra do próprio Google.
• Roda Linux e Windows
• GCE Auto Scaler Beta
12. Google Compute Engine - Análise
Compute | App Engine
• Controle total do ambiente
• Ambientes conhecidos
• Maior complexidade para gestão de infra
14. Google App Engine - Características
Compute | App Engine
• Platform-as-a-service
• "Eu escrevo a app, você gerencia meus
servidores"
• Fácil para construir, manter e escalar
• Suporte para Python, Java, PHP e Go
15. Google App Engine - Análise
Compute | App Engine
• Escalabilidade automática sem necessidade
de configuração
• Foco no código com deploy simples e
servidor local para testes
• Algumas necessidades de adaptação no
código
• Timeouts de 60 segundos para requisições
em instancias frontend
17. Google Cloud Endpoints - Características
Compute | App Engine
• Facilita a criação de API de backend no App
Engine
• Oferece autenticação OAuth
• Fácil para construir, manter e escalar
18. Google Cloud Endpoints - Características
Compute | App Engine
• Possui recursos especiais no Android Studio
• Fácil de criar os backends e os clients para
o backend via wizards (Adroid, IOS e JS)
• Necessidades de adaptação do código
• Associado ao Google Cloud Platform
20. Firebase
Firebase
• A plataforma realtime para apps
• Desenvolvimento ágil
• Excelente para mobile e web
• BD NoSql, JSON
• Faz push de updates em milisegundos quando as coisas
mudam.
• Suporte multi-plataforma
21. Firebase - Gestão de usuários e autenticação
Firebase
Suporte a mecanismo de login com:
• Login & senha
• Provedores OAuth
• Google
• Facebook
• Twitter
• GitHub
• Seus tokens de acesso próprios
23. Mais informações
Firebase
API
• 10 Atributos de uma API de sucesso
(http://youtu.be/OIzl8Ec5d9w). By Kleber Bacilli
Google Compute Engine
• https://cloud.google.com/compute/docs/
Google App Engine
• https://cloud.google.com/appengine/docs
• Developing Scalable Apps with Java
(https://www.udacity.com/course/ud859
Google Endpoint
• https://cloud.google.com/appengine/docs/java/endpoints/
Firebase
• https://www.firebase.com/docs/
Um aplicativo de sucesso não é somente o layout,
usabilidade, temos que se preocupar com o serviço de backend.
Se vc nao tem um backend robusto certamente seu aplicativo não será mto usado.
WhatsApp
A maioria dos aplicativos tem recursos sociais.
Serviço por trás que analisa, processa e disponibilista os dados.
Fazer um backend.
Backend pense em rest, projete no modelo rest.
API interna e depois publica .
todas as grandes empresas disponibilizam os seus serviços para o mundo.
Datacenter na nuvem
Escalabilidade e alta disponibilidade projetados
Funciona bem para novas aplicações ou para migrar aplicações existentes
Qualquer linguagem
Pode utilizar plataformas externas como Drupal, Sharepoint etc.
Resumo: flexibilidade e controle
Datacenter na nuvem -
Escalabilidade e alta disponibilidade projetados -
Funciona bem para novas aplicações ou para migrar aplicações existentes -
Qualquer linguagem -
Pode utilizar plataformas externas como Drupal, Sharepoint etc. -
Resumo: flexibilidade e controle
Validar a estrutura, projetar validar com o cliente
Auto Scaler, verifica a grande quantidade de usuários/acesso e automaticamente faz escalabilidade, mas tem que configurar
Datacenter na nuvem -
Escalabilidade e alta disponibilidade projetados -
Funciona bem para novas aplicações ou para migrar aplicações existentes -
Qualquer linguagem -
Pode utilizar plataformas externas como Drupal, Sharepoint etc. -
Resumo: flexibilidade e controle
Validar a estrutura, projetar validar com o cliente
Ambiente de execução na nuvem -
Escalabilidade e alta disponibilidade "sem esforço" -
Excelente para novas aplicações, ruim para migrar aplicações existentes -
Java, Python, PHP or Go! (GAE) - Mais fácil e rápido de construir / manter -
É preciso jogar as "regras do jogo" -
Resumo: produtividade e abstração
consistencia relacional
escalabiliadade nosql
Ambiente de execução na nuvem -
Escalabilidade e alta disponibilidade "sem esforço" -
Excelente para novas aplicações, ruim para migrar aplicações existentes -
Java, Python, PHP or Go! (GAE) - Mais fácil e rápido de construir / manter -
É preciso jogar as "regras do jogo" -
Resumo: produtividade e abstração
consistencia relacional
escalabiliadade nosql
Ambiente de execução na nuvem -
Escalabilidade e alta disponibilidade "sem esforço" -
Excelente para novas aplicações, ruim para migrar aplicações existentes -
Java, Python, PHP or Go! (GAE) - Mais fácil e rápido de construir / manter -
É preciso jogar as "regras do jogo" -
Resumo: produtividade e abstração
consistencia relacional
escalabiliadade nosql
tem que ficar na frente de tudo aceita uma porrada de requisiçoes
datastore - nao funciona join, função de agrupamento
se preocupe com a estrutura do datastore
Direcionada para mobile
Utilização do Datastore para maior escalabilidade
roda em cima do AppEngine facilita a criaçao de api rest e clients
Serviço especializado em serviço mobile
explicar um pouco as vantagens
em comparação com o IaaS e PaaS
Lisneter
banco de dados real time
varias plataformas
Vantagens: Agil, somente usar o sdk e pronto