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

HttpMonkey

 HttpMonkey

A fluent interface to do HTTP calls, free of fat dependencies and at same time, powered by middlewares rack. Done in Ruby. http://rogerleite.github.com/http_monkey

Avatar for Roger Leite

Roger Leite

January 07, 2013
Tweet

More Decks by Roger Leite

Other Decks in Technology

Transcript

  1. Github.com/rogerleite/h0p_monkey   •  Mo8vação   •  Funcionalidades   •  Middlewares

      •  Run  Forrest,  run!   Em  30  minutos!   H0pMonkey  
  2. Mo#vação   •  Interface  fluente   •  Aderente  ao  HTTP

     1.1   •  Ser  fácil  de  usar  e  adaptável   •  Rack  middlewares   •  Sempre  magro  (anoréxico)   •  Por  que  mais  um  h0p  client?  
  3. Funcionalidades   Suporte  ao  essencial   Minímo  de  dependências  possível

      Essencial:   •  Methods,  Headers  and  Response  Codes   •  SSL,  Proxy,  Timeout,  Authen8ca8on  …  etc.   •  Respeitar  HTTP  1.1  (8rando  o  cache)   Opcional:   •  Implementar  em  projetos  separados   •  O  cache  é  um  ó8mo  exemplo  de  middleware  
  4. Funcionalidades   Callbacks  por  code,  array  e  range   Middlewares

     a  lá  Rack  Builder   Exemplo  simples  de  get   Custom  Clients   N  Adapters  
  5. Funcionalidades   Interface  fluente   Representação  do  Request   Mais

     Internals   Configuração  por  Request   A  mesma  interface  do  configure  
  6. Middlewares   Por  que  middlewares?   Anatomia  de  um  middleware

      Geralmente  recebe:   op#ons  via  hash   Block  pra  injetar  comportamento     Mega  simples  around  filter    
  7. Middlewares   Futuro   Fazer  algo  como  “h0p_monkey-­‐browsah”   • 

    Cache  conforme  “Caching  in  HTTP”  do  RFC  2616-­‐sec13   •  Cookies  conforme  “State  Management  Mechanism”  do  RFC  2109   Explorar  Middlewares  existentes   •  Rack::CommonLogger,  Rack::Etag   •  Rack-­‐contrib  tem  middlewares  interessantes  como  Rack::Profiler,   Rack::CommonCookies   •  Rack::Parser  –  decode/parse  data  into  param  hash   Chamadas  Assíncronas  e  Paralelas