Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APIs: o que são, onde vivem e como se alimentam

APIs: o que são, onde vivem e como se alimentam

Apresentada no Women Techmakers de São José Dos Campos

Uma introdução ao conceito e funcionamento de APIs :)

Falando aqui especificamente de sistemas, uma interface é o que possibilita a ligação lógica entre 2 sistemas ou 2 partes de um sistema.
Parece bobeira ressaltar isso, mas não é. A gente não tem que complicar onde não precisa. Vamos deixar pra complicar depois ;)
Lembrando que: uma interface estabelece um contrato.

Há uma polêmica sobre versionamento, porque muitas vertentes de boas práticas consideram que o versionamento deve ir no header, mas na url fica mais humanamente legível
Em geral, beraking changes são coisas removidas, não adicionadas
Bom pra pesquisar: mutators

Diana Arnos

March 25, 2017
Tweet

More Decks by Diana Arnos

Other Decks in Programming

Transcript

  1. RESTful » REST: REpresentational State Transfer » Requisições e respostas

    via HTTP » As transações são identificadas via métodos: GET, POST, PUT, PATCH, DELETE » Cada recurso deve ter sua própria URL » Os recursos devem ser diferenciados por IDs » Stateless GET http://www.aquelaurlmarota.com/users/12345/orders 5
  2. Status codes Toda resposta traz um status code » 2xx:

    200, 201, 204… SUUUCESSOOOOO! » 3xx: 302, 304… redirecionamentos » 4xx: 400, 401, 403, 404… erros client side » 5xx: 500… erros server side http://http.cat/ 6
  3. Versionamento » Exponha só a versão cheia (/v1/users ou /v2/users)

    » Evite breaking changes: - renomear campos - remover recursos - remover campos - remover endpoints 7
  4. Padronização » Padronize as respotas: json, xml? » Consistência entre

    os diferentes endpoints » Status codes » Cabeçalhos só quando realmente necessário 8
  5. Dicas para montar uma resposta decente » Wrap de resposta:

    { ”data”: { ”nome”: ”diana”, ”cor”: ”vermelho” } } 9
  6. Dicas para montar uma resposta decente » Ao retornar um

    erro, mostre código E descrição { ”errorCode”:123, ”errors”: [ ”special characters are not alowed”, ”user CPF is required” ] } » NUNCA exponha erros internos ao usuário 10
  7. Segurança » Não exponha IDs sequenciais » Limite de requisições

    por segundo » SEMPRE use https » Não use logins por senha 11
  8. Documentação » ”Uma API só é tão boa quanto sua

    documentação” (apiary.io) » Quem consome? Desenvolvedores, não máquinas » Sugestão: swagger (http://swagger.io/) » Documentation First » EMPATIA 13
  9. Autenticação » OAuth 2.0 - segue um fluxo de autorização

    » JWT - utiliza tokens de autenticação 15
  10. Diana Arnos Tech daimyo @ high stakes academy twitter: dianaarnos

    facebook: dianaarnos github: dianaarnos instagram: dianaarnos 16 OBRIGADA!
  11. CREDITS Special thanks to all the people who made and

    released these awesome resources for free: » Presentation template by SlidesCarnival » Photographs by Unsplash » Diverse device hand photos by Facebook Design Resources 17