Backend para
dispositivos moveis
Thales Lima
thalesrml@gmail.com
@thales_
API Rest
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
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
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
API Rest - Filtro e Paginação
Api | RESTFul
GET /clientes?nome=fulano
Filtro
Paginação
GET /clientes?_offset=50&_limit=25
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"
}
API Rest - Segurança
Api | RESTFul
• Acesso não autorizado
• Sobrecarga
• OAuth 2.0
lasS
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
Google Compute Engine - Análise
Compute | App Engine
• Controle total do ambiente
• Ambientes conhecidos
• Maior complexidade para gestão de infra
PasS
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
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
PasS para mobile
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
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
MBaaS
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
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
Firebase - Gravando e lendo no Android
Firebase
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/
demo
Backend para
dispositivos moveis
Thales Lima
thalesrml@gmail.com
@thales_
https://github.com/thaleslima

Backend para dispositivos moveis

  • 1.
    Backend para dispositivos moveis ThalesLima thalesrml@gmail.com @thales_
  • 3.
  • 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
  • 10.
  • 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
  • 13.
  • 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
  • 16.
  • 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
  • 19.
  • 20.
    Firebase Firebase • A plataformarealtime 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ãode 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
  • 22.
    Firebase - Gravandoe lendo no Android Firebase
  • 23.
    Mais informações Firebase API • 10Atributos 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/
  • 24.
  • 25.
    Backend para dispositivos moveis ThalesLima thalesrml@gmail.com @thales_ https://github.com/thaleslima

Notas do Editor

  • #3 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.
  • #4 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.
  • #11 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
  • #12 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
  • #13 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
  • #14 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
  • #15 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
  • #16 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
  • #17 Direcionada para mobile
  • #19 Utilização do Datastore para maior escalabilidade roda em cima do AppEngine facilita a criaçao de api rest e clients
  • #20 Serviço especializado em serviço mobile explicar um pouco as vantagens em comparação com o IaaS e PaaS
  • #21 Lisneter banco de dados real time varias plataformas Vantagens: Agil, somente usar o sdk e pronto