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.

Diana Arnos

May 27, 2017
Tweet

More Decks by Diana Arnos

Other Decks in Programming

Transcript

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

    ALIMENTAM a.k.a. Application Programming Interface
  2. 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
  3. 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/
  4. 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
  5. PADRONIZAÇÃO • Padronize as respotas: json, xml? • Consistência entre

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

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

    por segundo • SEMPRE use https • Não use logins por senha
  9. 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
  10. AUTENTICAÇÃO • OAuth 2.0 • segue um fluxo de autorização

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

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