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

Desenvolvendo APIs de Alta Performance

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Desenvolvendo APIs de Alta Performance

Palestra proferida nas dependências da Dataprev Rio sobre os aspectos que impactam na performance e na qualidade de uso de APIs.

Avatar for Ricardo Coelho

Ricardo Coelho

February 21, 2014

More Decks by Ricardo Coelho

Other Decks in Technology

Transcript

  1. API e seus diversos formatos e regras de negócio que

    participam da entrega de dados ao cliente. Conjunto de Modais
  2. API Eficiente Ações na aplicação Estabeleça um padrão e use-o

    Fundamental em aplicações móveis Entregar Dados Prontos
  3. Use os códigos de estado HTTP 200 OK ! {

    “is_error”: true, “message”: “Not found” } 404 Not Found ! ! ! ! API Eficiente
  4. Use os verbos HTTP GET /api/v1/recurso/criar ! { “nome”: “Ricardo”,

    … } PUT /api/v1/recurso ! { “nome”: “Ricardo”, … } API Eficiente
  5. Update em Campos Específicos PATCH /api/v1/recurso/ HTTP/1.1 Host: servidor.com.br Content-Type:

    application/json-patch ! [ {"replace": "nome", "value": “Ricardo Coelho"} ] Reduzir a Pegada
  6. Update em Campos Específicos POST /api/v1/recurso/ HTTP/1.1 X-HTTP-Method-Override: PATCH Host:

    servidor.com.br Content-Type: application/json-patch ! [ {"replace": "nome", "value": “Ricardo Coelho"} ] Reduzir a Pegada
  7. PATCH /api/v1/recurso/ HTTP/1.1 Host: servidor.com.br Content-Type: application/json-patch ! [ {“replace”:

    “nome”, “value”: “Ricardo Coelho”}, {“unset”: “faltas”}, {“add”: “ferias”, “value”: { “inicio”: “2014-01-05”, “fim”: “2014-02-04” } } ] Reduzir a Pegada
  8. PATCH /api/v1/recurso/ HTTP/1.1 Host: servidor.com.br Content-Type: application/json-patch ! [ {“nome”:

    “Ricardo Coelho”}, {“faltas”: null}, {“ferias”: { “inicio”: “2014-01-05”, “fim”: “2014-02-04” } } ] Reduzir a Pegada
  9. OPTIONS /api/v1/recurso/ HTTP/1.1 Host: servidor.com.br Content-Type: application/json-patch ! { “_comment”:

    “bla, bla, bla”, “format”: { “id”: “int”, “nome”: “string”, “faltas”: [ “datetime” ] “ferias”: { “inicio”: “date”, “fim”: “date” } } } Documentação para Sistemas