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

API 101: o que é, onde vive, como se alimenta?

API 101: o que é, onde vive, como se alimenta?

Palestra apresentada no Darkmira Tour 2017, em Brasília

API é uma sigla que tá na moda. Todo mundo fala sobre, consome, disponibiliza. Mas o que exatamente é uma API? Essa palestra vai responder a essa pergunta e mais: entenda conceitos como status code, autenticação, documentação de uma API e boas práticas.

4ce43cd2535d0afe50065a743af646e9?s=128

Diana Arnos

May 27, 2017
Tweet

Transcript

  1. APIS: O QUE SÃO, ONDE VIVEM E COMO SE ALIMENTAM

  2. 1. APIS: O QUE SÃO, ONDE VIVEM E COMO SE

    ALIMENTAM a.k.a. Application Programming Interface
  3. UMA INTERFACE E nada mais. Mesmo. Sistema API Sistema /

    Serviço
  4. 2. BOAS PRÁTICAS, RESTFUL E OUTRAS HISTÓRIAS Pelo bem de

    todos os devs
  5. 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
  6. 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/
  7. STATUS CODES https://http.cat/200

  8. VERSIONAMENTO • Exponha só a versão cheia (/v1/users ou /v2/users)

    • Evite breaking changes: • renomear campos • remover recursos • remover endpoints • mudar o formato da resposta
  9. PADRONIZAÇÃO • Padronize as respotas: json, xml? • Consistência entre

    os diferentes endpoints • Status codes • Cabeçalhos só quando realmente necessário
  10. DICAS PARA MONTAR UMA RESPOSTA DECENTE • Wrap de resposta:

    { ”data”: { ”nome”: ”diana”, ”cor”: ”vermelho” } }
  11. 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
  12. SEGURANÇA • Não exponha IDs sequenciais • Limite de requisições

    por segundo • SEMPRE use https • Não use logins por senha
  13. 3. DOCUMENTAÇÃO O coração de uma boa API

  14. 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
  15. 4. AUTENTICAÇÃO Login e senha NÃO

  16. AUTENTICAÇÃO • OAuth 2.0 • segue um fluxo de autorização

    • JWT • utiliza tokens de autenticação
  17. OBRIGADA! Diana Arnos tech daimyo @ high stakes academy twitter:

    dianaarnos facebook: dianaarnos github: dianaarnos instagram: dianaarnos https://joind.in/talk/a4771