SlideShare uma empresa Scribd logo
HttpMonkey
    Github.com/rogerleite/http_monkey



•   Motivação
•   Funcionalidades
•   Middlewares
•   Run Forrest, run!




Em 30 minutos!
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)
Funcionalidades
Suporte ao essencial
Minímo de dependências possível
Essencial:
     • 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
Funcionalidades
                             Custom Clients
                                N Adapters
          Callbacks por code, array e range




            Middlewares a lá Rack Builder




                   Exemplo simples de get
Funcionalidades
                     Interface fluente
            Representação do Request
                        Mais Internals




            Configuração por Request
       A mesma interface do configure
Funcionalidades
Response roots!




Com helpers supimpas!
Middlewares
Por que middlewares?
Anatomia de um middleware


                                          Geralmente recebe:
                                              options via hash
                            Block pra injetar comportamento
                                  Mega simples around filter
Middlewares
Middlewares disponíveis no HttpMonkey
Middlewares
Middlewares
Futuro
Fazer algo como “http_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
Obrigado!
 Github.com/rogerleite/http_monkey




Calma que tem código pra rodar :D

Mais conteúdo relacionado

PDF
Quando o planejamento da infraestrutura leva ao sucesso
PPTX
Conhecendo o asp.net core
ODP
Alta perfomance de aplicações PHP com Nginx
PDF
PHP - Aula #01
PDF
Frontline - Rails3.1
PDF
O bom, o mau, o vilão... e o node.js
PPTX
JBoss-WildFly - Avançado
ODP
Atendendo Milhares de Requisições com o Play Framework 2 - v2
Quando o planejamento da infraestrutura leva ao sucesso
Conhecendo o asp.net core
Alta perfomance de aplicações PHP com Nginx
PHP - Aula #01
Frontline - Rails3.1
O bom, o mau, o vilão... e o node.js
JBoss-WildFly - Avançado
Atendendo Milhares de Requisições com o Play Framework 2 - v2

Mais procurados (7)

PDF
Yaf - Um framework que roda sob uma extensão
ODP
Performance em Java
PDF
Application Servers e Ruby
PDF
PDF
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
PDF
Minicurso Ruby e Rails (RailsMG UNA)
PDF
Dicas para Turbinar o servidor de Aplicações JBoss 7
Yaf - Um framework que roda sob uma extensão
Performance em Java
Application Servers e Ruby
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
Minicurso Ruby e Rails (RailsMG UNA)
Dicas para Turbinar o servidor de Aplicações JBoss 7
Anúncio

Destaque (7)

PPT
Pirámides de Egipto
PPT
ODP
Sin título 1 mi primer trabajo
PPT
Alex balasch cuento de navidad
PDF
Epigenetics: psiconeuroendocrinology and lamarckian-like evolution
ODP
Presentación1
PPTX
agribusiness nov2012 rabo_lochemhandout_updated
Pirámides de Egipto
Sin título 1 mi primer trabajo
Alex balasch cuento de navidad
Epigenetics: psiconeuroendocrinology and lamarckian-like evolution
Presentación1
agribusiness nov2012 rabo_lochemhandout_updated
Anúncio

Semelhante a HTTP Monkey (20)

KEY
Do Rest Ao Restfull - Rio Jug
PDF
HTTP, Requisição e Resposta
PDF
Rest Teoria E Pratica
PDF
Aula03 - protocolo http
KEY
PHP RESTful Web Services - PHPConf'09
PPTX
Rest workshop
PPTX
Middlewares com asp.net core
PPTX
Conhecendo o Novo REST Framework
PDF
PPTX
Design de APIs REST
PPT
Rest Teoria E Pratica
PPTX
2016-redes-E.pptx
PDF
Rest Java One
PDF
HTTP: A Base do Desenvolvimento Web - FISL 12
PPTX
A Web é uma API
PDF
PHP RESTful Web Services
PDF
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
PDF
REST com Python
PPTX
Rest
PPTX
Aplicações web parte 1
Do Rest Ao Restfull - Rio Jug
HTTP, Requisição e Resposta
Rest Teoria E Pratica
Aula03 - protocolo http
PHP RESTful Web Services - PHPConf'09
Rest workshop
Middlewares com asp.net core
Conhecendo o Novo REST Framework
Design de APIs REST
Rest Teoria E Pratica
2016-redes-E.pptx
Rest Java One
HTTP: A Base do Desenvolvimento Web - FISL 12
A Web é uma API
PHP RESTful Web Services
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
REST com Python
Rest
Aplicações web parte 1

Último (16)

PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Processos na gestão de transportes, TM100 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Arquitetura de computadores - Memórias Secundárias
Processos na gestão de transportes, TM100 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...

HTTP Monkey

  • 1. HttpMonkey Github.com/rogerleite/http_monkey • Motivação • Funcionalidades • Middlewares • Run Forrest, run! Em 30 minutos!
  • 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. Funcionalidades Suporte ao essencial Minímo de dependências possível Essencial: • 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. Funcionalidades Custom Clients N Adapters Callbacks por code, array e range Middlewares a lá Rack Builder Exemplo simples de get
  • 5. Funcionalidades Interface fluente Representação do Request Mais Internals Configuração por Request A mesma interface do configure
  • 7. Middlewares Por que middlewares? Anatomia de um middleware Geralmente recebe: options via hash Block pra injetar comportamento Mega simples around filter
  • 10. Middlewares Futuro Fazer algo como “http_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

Notas do Editor

  • #2: IntroEstouhá 3 anosna Abril,sendo 2 anostrabalhando com Alexandria.Agenda
  • #3: Porquemais um client http?Da listagigante de clients, somente o faraday suportamiddlewares, queporsinalnãoé Rack “compliance”.Tópicos.
  • #4: 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.
  • #5: Uso default.Criador de cliente. A gem podeserusadapordiferentesprojetos, cada um com a suaconfiguração.Suportavários adapters.Behaviours. Code, array ou range.Middlewares.
  • #6: 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”.
  • #7: 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”.
  • #8: Porquejáépadrãoestabelecido.Anatomia de um middleware. Começo, meio e fim.Initialize – voumostrarexemplos no proximo slide
  • #9: Middlewares built in. Osnomessão auto explicativos. :DMostrarosexemplos de initialize, options e blockFollow [301, 302, 303, 307] headers.
  • #10: 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!
  • #11: Aondequeremoschegar.Limite?Somente a imaginação.Browsah-packMiddlewaresexistentesRack middlewaresexistentes. Exemplo: o “VCR” em middleware.
  • #12: Mostrarcódigos!