Descobri recentemente sobre HTTP - The Gem! outro cliente HTTP para Ruby, mas parece um bem legal.
Seria legal se Faraday tivesse um adaptador para isso.
Estou disposto a ajudar com isso, na verdade, estou pensando em escrevê-lo sozinho. Precisaria apenas de algumas dicas para começar e respostas às seguintes perguntas:
Olá @PandaWhisperer e obrigado pelo interesse no Faraday!
Até agora, o adaptador foi mantido em Faraday e mantido pela equipe principal.
No entanto, percebemos que isso causou alguns problemas, então decidimos transferi-los para fora.
Minha solução preferida é ter uma gema dedicada (por exemplo, faraday-http
), mas há casos em que o adaptador foi integrado dentro da gema do cliente (por exemplo, typhoeus
).
Você é livre para escolher o que preferir, mas o primeiro é geralmente a melhor opção, a menos que você seja o mantenedor da gema do cliente.
Com relação à implementação, recentemente dei alguns conselhos sobre como construir outro adaptador. Você pode encontrá-los (junto com um link para o código do adaptador) em # 766.
Também estou no processo de reescrever testes usando RSpec e a ideia é permitir que gemas externas integrem esses testes em seu pipeline de testes. Mas isso não é uma coisa de curto prazo 😅
Espero que tudo isso seja útil, mas entre em contato se precisar de mais alguma coisa 👍!
Olá @iMacTia. Eu passei algum tempo hackeando um adaptador básico. Você pode ver uma solicitação pull aqui (não a enviei para o repo principal). Recursos básicos são suportados e testados. Se você tiver um minuto, gostaria de receber seus comentários.
NOTA: isso foi apenas para diversão, eu realmente não preciso disso agora. Mas se alguém quiser e quiser embrulhá-lo em uma joia, por favor, LMK.
Olá @PandaWhisperer e obrigado por
Dei uma olhada rápida e o PR parece um bom ponto de partida 👍
Como você já observou, duvido que a implementação atual ofereça suporte para SSL ou compressão, mas considerando que foi desenvolvida para diversão nas horas vagas, ficaria feliz com o resultado 😄
A ideia por trás da v1.0 é simplificar o processo de criação de um novo adaptador para que pessoas como você (a comunidade!) Possam contribuir com o Faraday sem depender diretamente da equipe principal.
Uma tarefa importante, atualmente em curso, para atingir esse objetivo é ter testes simplificados e disponíveis para serem executados a partir de gems de adaptador / middleware externos.
Atualmente estou focado nisso e você pode ver o progresso neste ramo .
Depois de concluído e mesclado, podemos pensar em usar seu adaptador como uma mesa de teste para ele 👍
Olá @PandaWhisperer 👋
Após alguns meses dolorosos e muita refatoração, os testes em 1.0 foram convertidos para RSpec 🎉!
Como parte disso, criei um conjunto de "exemplos compartilhados" que descreve como um adaptador deve funcionar.
O próximo passo seria disponibilizar esses testes para gemas externas para que eles possam testar as mudanças no núcleo Faraday.
Se você ainda está trabalhando em seu cliente HTTP e gostaria de experimentá-lo, por favor me avise 👍
@PandaWhisperer Agora estamos nos aproximando da v1.0 e os adaptadores podem agora viver em seus próprios repositórios.
Tomei a liberdade de construir uma joia com o adaptador que você escreveu. Você pode encontrar o PR principal aqui: https://github.com/lostisland/faraday-http/pull/1
Esta é apenas uma prova de conceito, mas pode continuar se tornando o primeiro adaptador externo oficial do Faraday 1.0 ❤️
Se você ainda estiver interessado nesse adaptador e tiver algum tempo, ficaria feliz em adicioná-lo como um colaborador nesse projeto para que possa mantê-lo e aprimorá-lo ao longo do tempo.
@PandaWhisperer faraday-http
primeiro lançamento acabou de acontecer, e é principalmente graças ao seu trabalho no ano passado: https://rubygems.org/gems/faraday-http 🎉
Caso você ainda esteja planejando usá-lo e esteja interessado, gostaria de renovar o convite para adicioná-lo como um colaborador nesse repo
Comentários muito úteis
@PandaWhisperer
faraday-http
primeiro lançamento acabou de acontecer, e é principalmente graças ao seu trabalho no ano passado: https://rubygems.org/gems/faraday-http 🎉Caso você ainda esteja planejando usá-lo e esteja interessado, gostaria de renovar o convite para adicioná-lo como um colaborador nesse repo