HttpMonkey    Github.com/rogerleite/http_monkey•   Motivação•   Funcionalidades•   Middlewares•   Run Forrest, run!Em 30 m...
Motivação• Por que mais um http client?•   Interface fluente•   Aderente ao HTTP 1.1•   Ser fácil de usar e adaptável•   R...
FuncionalidadesSuporte ao essencialMinímo de dependências possívelEssencial:     • Methods, Headers and Response Codes    ...
Funcionalidades                             Custom Clients                                N Adapters          Callbacks po...
Funcionalidades                     Interface fluente            Representação do Request                        Mais Inte...
FuncionalidadesResponse roots!Com helpers supimpas!
MiddlewaresPor que middlewares?Anatomia de um middleware                                          Geralmente recebe:      ...
MiddlewaresMiddlewares disponíveis no HttpMonkey
Middlewares
MiddlewaresFuturoFazer algo como “http_monkey-browsah”    • Cache conforme “Caching in HTTP” do RFC 2616-sec13    • Cookie...
Obrigado! Github.com/rogerleite/http_monkeyCalma que tem código pra rodar :D
Upcoming SlideShare
Loading in...5
×

HTTP Monkey

290

Published on

Simple HTTP client with fluent interface, support for multiple adapters and powered by middlewares (like rack).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
290
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • IntroEstouhá 3 anosna Abril,sendo 2 anostrabalhando com Alexandria.Agenda
  • Porquemais um client http?Da listagigante de clients, somente o faraday suportamiddlewares, queporsinalnãoé Rack “compliance”.Tópicos.
  • Dependências: rack, httpiLess is moreEssencialé o que o HTTP 1.1 descreve, tirando o Cache.Métodos: GET, POST, PUT, DELETE e futuramente CUSTOM (como purge porexemplo)Headers é a base de comunicação dos requests e responses.Auth Basic, Digest, body gzippedtambémsãofuncionalidades do HttpMonkeyOpcional. O objetivoémanter o monkey magro, e desenvolvertudoem middleware.Cache e CookieStoresãoexemplos de middleware.
  • Uso default.Criador de cliente. A gem podeserusadapordiferentesprojetos, cada um com a suaconfiguração.Suportavários adapters.Behaviours. Code, array ou range.Middlewares.
  • Interface fluent – o EntryPointé a classequefaz a interface de “http options”, ouseja, vcinformaos headers, authentication, SSL etc.Configuracoespor request – Todas as opções de cnfiguração, lá do bloco do “build”, vc tem disponivel “por request”.
  • Interface fluent – o EntryPointé a classequefaz a interface de “http options”, ouseja, vcinformaos headers, authentication, SSL etc.Configuracoespor request – Todas as opções de cnfiguração, lá do bloco do “build”, vc tem disponivel “por request”.
  • Porquejáépadrãoestabelecido.Anatomia de um middleware. Começo, meio e fim.Initialize – voumostrarexemplos no proximo slide
  • Middlewares built in. Osnomessão auto explicativos. :DMostrarosexemplos de initialize, options e blockFollow [301, 302, 303, 307] headers.
  • Ciclo de vida do RequestCreate RequestCall Middlewares (with request)Do Request, receive ResponseBack to Middlewares (with request and response)Call Behaviours (client, request, response)Lembrarque a ordem dos middlewareséimportante!
  • Aondequeremoschegar.Limite?Somente a imaginação.Browsah-packMiddlewaresexistentesRack middlewaresexistentes. Exemplo: o “VCR” em middleware.
  • Mostrarcódigos!
  • HTTP Monkey

    1. 1. HttpMonkey Github.com/rogerleite/http_monkey• Motivação• Funcionalidades• Middlewares• Run Forrest, run!Em 30 minutos!
    2. 2. Motivação• Por que mais um http client?• Interface fluente• Aderente ao HTTP 1.1• Ser fácil de usar e adaptável• Rack middlewares• Sempre magro (anoréxico)
    3. 3. FuncionalidadesSuporte ao essencialMinímo de dependências possívelEssencial: • Methods, Headers and Response Codes • SSL, Proxy, Timeout, Authentication … etc. • Respeitar HTTP 1.1 (tirando o cache)Opcional: • Implementar em projetos separados • O cache é um ótimo exemplo de middleware
    4. 4. Funcionalidades Custom Clients N Adapters Callbacks por code, array e range Middlewares a lá Rack Builder Exemplo simples de get
    5. 5. Funcionalidades Interface fluente Representação do Request Mais Internals Configuração por Request A mesma interface do configure
    6. 6. FuncionalidadesResponse roots!Com helpers supimpas!
    7. 7. MiddlewaresPor que middlewares?Anatomia de um middleware Geralmente recebe: options via hash Block pra injetar comportamento Mega simples around filter
    8. 8. MiddlewaresMiddlewares disponíveis no HttpMonkey
    9. 9. Middlewares
    10. 10. MiddlewaresFuturoFazer algo como “http_monkey-browsah” • Cache conforme “Caching in HTTP” do RFC 2616-sec13 • Cookies conforme “State Management Mechanism” do RFC 2109Explorar Middlewares existentes • Rack::CommonLogger, Rack::Etag • Rack-contrib tem middlewares interessantes como Rack::Profiler, Rack::CommonCookies • Rack::Parser – decode/parse data into param hashChamadas Assíncronas e Paralelas
    11. 11. Obrigado! Github.com/rogerleite/http_monkeyCalma que tem código pra rodar :D
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×