Web APIs
EvaldoBarbosa
Analista de Sistemas
Presidente do PHP Maranhão
Membro da diretoria da ABRAPHP
SOAP: Protocolo baseado em XML,
geralmente utilizado por aplicações em
Java.
RESTFul: Aplicações geralmente baseadas
em JS...
Representational State Transfer
(REST)
Client-server
Stateless
Uniform interface
Cache (client cache, server cache)
Por volta de 2000, por Roy Fielding como
tese de doutorado.
Época em que, com a colaboração dos
colegas, estava escrevendo...
Quem usa isso?
Quem usa isso?
Todo e qualquer aparelho que consiga
trafegar pelo protocolo HTTP.
Serve para...
Acelerar parcerias
Simplificar integração mobile-cloud
Impulsionar a inovação aberta
Integrar aplicações de ...
Como funciona
Como funciona
Uso dos verbos HTTP
(GET, POST, PUT, DELETE)
Verbos HTTP “imitam” o CRUD
URL
http://api.seudomi.nio/nome_da_api/recurso
URI (recursos)
/owners
/owners/1234/dogs
/dogs/222/owner
URI (recursos)
Recursos são coisas, tem nomes
específicos, mesmo que possam ser
tratados como abstrações.
Usar sempre subs...
Padrão
/recurso/identificador/subrecurso
Filtragem de dados
Use query string
/dogs?
color=red&state=running&location=park
Resposta parcial
Trazer somente alguns campos
/dogs?fields=color,state,location
[delimitado por vírgula]
Resposta parcial
Paginação
/owners/1234/dogs?limit=25&offset=50
(recomendado)
/owners/1234/dogs?start=50&count=25
Busca
Global
/search?q=John+Smith
Por recurso
/owners/1234/dogs?q=pluto
Modelo de Maturidade de Richardson
RMM
RMM
Nivel 0: nada implementado
Nivel 1: uso de recursos
Nivel 2: uso dos verbos HTTP corretamente
Nivel 3: Hipermídia
Respostas
O uso dos verbos aliado ao bom uso das
respostas do protocolo HTTP deixam a API
mais poderosa.
Respostas
- Tudo que envolva sucesso (HTTP 200)
- O que a aplicação diz que é erro : erro
do cliente (HTTP 400)
- Erros do...
Respostas
Exceções devem ser representadas pelos
códigos de erro corretos;
A mensagem de erro deve ser explicativa;
Respostas
Recomenda-se o uso de um código
específico para cada erro da aplicação;
Em desenvolvimento é recomendável
retorn...
Exemplo
{
"developerMessage" : "Mensagem bem
explicativa.",
"userMessage":"Mensagem de erro simples.",
"errorCode" : 12345...
Media Types
Request
Accept: application/json
Response
Content-type: application/json
Versionamento
Versão explícita na URI
/v1/dogs/1234/owner
Recomenda-se manter até duas versões de
uma API.
A versão anterior deve ser
mantida por cerca de 6 meses.
Segurança
Autenticação por token
(geralmente oauth2)
Documentação
Dependendo do tamanho da API ou da
quantidade de usuários que ela tenha,
passa a ser interessante ter um site...
Documentação
descrição dos endpoints
(parametros de entrada e saida)
exemplos de código
páginas introdutórias
como credenc...
Documentação
descrição dos endpoints
(parametros de entrada e saida)
exemplos de código
páginas introdutórias
como credenc...
Documentação
acesso ao suporte
Fórum
Sandbox
self-service signup
(autocredenciamento de apis abertas)
Obrigado
Perguntas?
WWW.EVALDOBARBOSA.COM.BR
br.linkedin.com/in/evaldobarbosa
github.com/evaldobarbosa
twitter.com/evaldobarbosa
Web apis
Próximos SlideShares
Carregando em…5
×

Web apis

338 visualizações

Publicada em

Palestra realizada na Secretaria Adjunta de Tecnologia da Informação do Estado do Maranhão para conhecimento do paradigma de APIs Web pelos desenvolvedores do instituição.

Publicada em: Internet
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
338
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Web apis

  1. 1. Web APIs
  2. 2. EvaldoBarbosa Analista de Sistemas Presidente do PHP Maranhão Membro da diretoria da ABRAPHP
  3. 3. SOAP: Protocolo baseado em XML, geralmente utilizado por aplicações em Java. RESTFul: Aplicações geralmente baseadas em JSON e utilizada por diversas linguagens. SOAP x RESTful
  4. 4. Representational State Transfer (REST) Client-server Stateless Uniform interface Cache (client cache, server cache)
  5. 5. Por volta de 2000, por Roy Fielding como tese de doutorado. Época em que, com a colaboração dos colegas, estava escrevendo as especificaçoes do HTTP 1.1. Origem do REST
  6. 6. Quem usa isso?
  7. 7. Quem usa isso? Todo e qualquer aparelho que consiga trafegar pelo protocolo HTTP.
  8. 8. Serve para... Acelerar parcerias Simplificar integração mobile-cloud Impulsionar a inovação aberta Integrar aplicações de software Criar novos negócios
  9. 9. Como funciona
  10. 10. Como funciona Uso dos verbos HTTP (GET, POST, PUT, DELETE) Verbos HTTP “imitam” o CRUD
  11. 11. URL http://api.seudomi.nio/nome_da_api/recurso
  12. 12. URI (recursos) /owners /owners/1234/dogs /dogs/222/owner
  13. 13. URI (recursos) Recursos são coisas, tem nomes específicos, mesmo que possam ser tratados como abstrações. Usar sempre substantivos para os recursos.
  14. 14. Padrão /recurso/identificador/subrecurso
  15. 15. Filtragem de dados Use query string /dogs? color=red&state=running&location=park
  16. 16. Resposta parcial Trazer somente alguns campos /dogs?fields=color,state,location [delimitado por vírgula]
  17. 17. Resposta parcial Paginação /owners/1234/dogs?limit=25&offset=50 (recomendado) /owners/1234/dogs?start=50&count=25
  18. 18. Busca Global /search?q=John+Smith Por recurso /owners/1234/dogs?q=pluto
  19. 19. Modelo de Maturidade de Richardson RMM
  20. 20. RMM Nivel 0: nada implementado Nivel 1: uso de recursos Nivel 2: uso dos verbos HTTP corretamente Nivel 3: Hipermídia
  21. 21. Respostas O uso dos verbos aliado ao bom uso das respostas do protocolo HTTP deixam a API mais poderosa.
  22. 22. Respostas - Tudo que envolva sucesso (HTTP 200) - O que a aplicação diz que é erro : erro do cliente (HTTP 400) - Erros do servidor (HTTP 500)
  23. 23. Respostas Exceções devem ser representadas pelos códigos de erro corretos; A mensagem de erro deve ser explicativa;
  24. 24. Respostas Recomenda-se o uso de um código específico para cada erro da aplicação; Em desenvolvimento é recomendável retornar link para a documentação.
  25. 25. Exemplo { "developerMessage" : "Mensagem bem explicativa.", "userMessage":"Mensagem de erro simples.", "errorCode" : 12345, "more info": "http://dev.teachdogrest.com/errors/12345" }
  26. 26. Media Types
  27. 27. Request Accept: application/json Response Content-type: application/json
  28. 28. Versionamento
  29. 29. Versão explícita na URI /v1/dogs/1234/owner
  30. 30. Recomenda-se manter até duas versões de uma API. A versão anterior deve ser mantida por cerca de 6 meses.
  31. 31. Segurança
  32. 32. Autenticação por token (geralmente oauth2)
  33. 33. Documentação Dependendo do tamanho da API ou da quantidade de usuários que ela tenha, passa a ser interessante ter um site especializado nela.
  34. 34. Documentação descrição dos endpoints (parametros de entrada e saida) exemplos de código páginas introdutórias como credenciar aplicações e gerar tokens
  35. 35. Documentação descrição dos endpoints (parametros de entrada e saida) exemplos de código páginas introdutórias como credenciar aplicações e gerar tokens
  36. 36. Documentação acesso ao suporte Fórum Sandbox self-service signup (autocredenciamento de apis abertas)
  37. 37. Obrigado
  38. 38. Perguntas?
  39. 39. WWW.EVALDOBARBOSA.COM.BR br.linkedin.com/in/evaldobarbosa github.com/evaldobarbosa twitter.com/evaldobarbosa

×