COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM
APLICATIVOS WEB OU MOBILEFelipe Iketani
COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM
APLICATIVOS WEB OU MOBILEFelipe Iketani
COMO AUMENTAR A PRODUTIVIDADE
ATRAVÉS DA CONVENÇÃO REST EM APLICATIVOS WEB OU MOBILE
Felipe Iketani
7 BILHÕESde habitantes no mundo
http://pt.wikipedia.org/wiki/Popula%C3%A7%C3%A3o_mundial
18.539.500Desenvolvedores de Softwares no mundo
http://www.infoq.com/news/2014/01/IDC-software-developers
Vilfredo Pareto* 1848+ 1923
20% das pessoas contém 80% da riqueza20% das doenças causam 80% das mortes
20% dos clientes são responsáveis por 80% dos lucros
80% do tempo dos desenvolvedores é gasto na leitura20% do tempo dos desenvolvedores é gasto na escrita
“ Se você quer ser um desenvolvedor mais produtivo,melhore seu tempo de leitura”
Felipe Iketani, 2014
COMO MELHORAR MEU TEMPO DE LEITURA?
SIGAM CONVENSÕES
SIGAM CONVENSÕES
SIGAM (BOAS) CONVENSÕES
SIGAM (BOAS) CONVENSÕES
COMO AUMENTAR A PRODUTIVIDADE
ATRAVÉS DA CONVENSÃO REST EM APLICATIVOS WEB OU MOBILE
Felipe Iketani
COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM
APLICATIVOS WEB OU MOBILEFelipe Iketani
RE.S.T. REPRESENTATIONAL STATE
TRANSFER
RECURSO X REPRESENTAÇÃO
NomeTelefoneEndereçoProfissão
xAugusto Mafra(21) 9555-5555
Rua Antônio MaçalGerente de Reuniões
XML … JSON … HTML … JPG … PNG … MP4
https://graph.facebook.com/v2.3/541313955
1997
https://graph.facebook.com/v2.3/541313955GET
domínioverbo HTTP
versão id da representação
GET http://tasafo.com/membros
GET http://tasafo.com/membros/123PUT http://tasafo.com/membros/123
DELETE http://tasafo.com/membros/123
POST http://tasafo.com/membros/
GET /eventos
GET /eventos/123PUT /eventos/123
DELETE /eventos/123
POST /eventos
EVENTOS
GET /eventos/123/inscricoes
GET /eventos/123/inscricoes/777PUT /eventos/123/inscricoes/777
DELETE /eventos/123/inscricoes/777
POST /eventos/123/inscricoes
INSCRIÇÕES
DELETE /eventos/123/inscricoes/777/cancelarGET /eventos/123/inscricoes/777/tweets
GET /eventos/123/inscricoes/777/tweets
Representaçãoou
Ação
DELETE /eventos/123/inscricoes/777/cancelar
Caminho da representação
GET /eventos/123/inscricoes/777DELETE /eventos/123/inscricoes/777
RepresentaçãoAção
GETSeguro
Indepotente
5 x 1 x 1 x 1 x 1 = 55 x 0 x 0 x 0 x 0 = 0
Seguro e indepotente
Indepotente
SEGURO INDEPOTENTE
GET X X
POST
DELETE X
PUT X
GET … PUT … POST … DELETE…
HEAD … PATCH … OPTIONS … LINK … UNLINK…
RESPOSTAS
POST /palestras/
descricao: “Como criar maionese em casa”imagem: “/imagens/o_rei_da_maionese.png“
Status code 200 - SuccessError message: “Acao deu erro“
POST /palestras/
descricao: “Como criar maionese em casa”imagem: “/imagens/o_rei_da_maionese.png“
Status code 401 - UnauthorizedError message: “Você não está logado“
1XX - Informações2XX - Sucesso3XX - Redirecionamento4XX - Requisição ruim5XX - Erro no servidor
RESPOSTAS HTTP
200 - Sucesso, OK201 - Criado202 - Aceito304 - Sem conteúdo
2XX - Sucesso
301 - Movido permanentemente303 - Veja outro304 - Não modificado307 - Redirecionado temporariamente
3XX - Redirecionamento
400 - Bad request401 - Não autorizado404 - Não encontrado
4XX - Requisição ruim
500 - Erro interno do servidor501 - Não implementado503 - Servidor não disponível
5XX - Erro no servidor
RESTful
80% do tempo dos desenvolvedores é gasto na leitura20% do tempo dos desenvolvedores é gasto na escrita
[{id: 100,titulo: "Seja Notável",autor: “Fábio Aguiar”,image: “/image.jpg”
}, {id: 101,titulo: “Não seja sei próprio sabotador",autor: “Felipe Sousa”,
}]
GET /palestras?&search=seja+notavel
{version: “1.0”, href: “/palestras?&search=seja+notavel”,
items:“[{id: 100,titulo: "Seja Notável",autor: “Fábio Aguiar”,image: “/image.jpg” links: { href: “/palestras/123”, autor: “/autores/5” }
}, {id: 101,titulo: “Não seja sei próprio sabotador",autor: “Felipe Sousa”,links: { href: “/tasafo.com/palestras/123”, autor: “/autores/6” }
}],
template: { titulo: “Título da palestra”, autor_id: “Id do autor”, imagem: “url aqui“ }
}
RESTful
RESTful Hypermedia
RESTful Web Service
Vilfredo Pareto* 1848+ 1923
“ Se você quer ser um desenvolvedor mais produtivo,melhore seu tempo de leitura”
Felipe Iketani, 2014
“ Se você quer uma equipe mais produtiva,crie um ambiente de desenvolvimento
com boas convenções e práticas de desenvolvimento”
Felipe Iketani, 2015
•Código limpo
•Testes automatizados
•Convenções
•Integração contínua
•Versionamento de código
…
OBRIGADO
e participa das comunidades em Belém
Felipe Iketani trabalha na
BelémMiami (home office)