Go Resty
Go Resty é uma biblioteca da linguagem Go para construir clientes de API RESTful. Ele fornece uma API concisa e poderosa que permite aos desenvolvedores enviar facilmente solicitações HTTP e lidar com respostas.
Características
- Suporta os métodos de solicitação GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS e outros
- Configurações simples e encadeáveis e métodos de solicitação
- O corpo da solicitação pode ser do tipo
string,[]byte,struct,map,sliceeio.Reader- Detecta automaticamente
Content-Type - Usa processamento não bufferizado para
io.Reader - Acessa a instância original
*http.RequestviaRequest.RawRequestem middleware e execução de solicitação - Permite múltiplas leituras do corpo da solicitação através de
Request.RawRequest.GetBody()
- Detecta automaticamente
- Fornece mais possibilidades com o objeto Response
- Acessa a resposta como um array
[]byte-response.Body(), ou como umstring-response.String() - Recupera o tempo de resposta
response.Time()e o tempo recebidoresponse.ReceivedAt()
- Acessa a resposta como um array
- Codifica e decodifica automaticamente tipos de conteúdo como
JSONeXML- Padrões para
JSONse o cabeçalhoContent-Typee os parâmetrosstruct/mapnão forem fornecidos - Fornece opções para substituir a codificação/decodificação JSON e a codificação/decodificação XML
- Padrões para
- Upload simples de um ou mais arquivos via
multipart/form-data- Detecta automaticamente o tipo de conteúdo dos arquivos
- Suporta mecanismo de tentativa de repetição e referências de funções de condição de repetição
- Suporte a middleware para solicitações HTTP e REST no cliente Resty, incluindo Request e Response
- Suporta
Request.SetContext - Opções de autorização para tokens
BasicAutheBearer - Define o valor
ContentLengthda solicitação para todas as solicitações ou solicitações específicas - Certificados raiz personalizados e certificados de cliente
- Baixa/salva diretamente respostas HTTP em um arquivo, semelhante ao comando
curl -o - Suporte a cookies para solicitações e CookieJar
- Solicitações baseadas em registros SRV em vez do URL do host
- Configurações de cliente como
Timeout,RedirectPolicy,Proxy,TLSClientConfig,Transport, etc. - Design Resty
- Definir e selecionar no nível do cliente, com opção para substituir no nível da solicitação
- Middleware para solicitações e respostas
- Permite a criação de vários clientes usando
resty.New()se necessário
- Seguro para goroutines de concorrência
- Modo de depuração - exibição de log clara e rica
- Gzip - Go lida automaticamente com isso, com tratamento de fallback no Resty
- Compatível com
HTTP/2eHTTP/1.1 - Suporte a Bazel
- Fornece fácil simulação para teste do Resty
Versões do Go Suportadas
É recomendado usar go1.16 ou superior.
A partir da versão v1.10.0, o Resty suporta go modules.
A partir da versão v2 do Resty e acima, ele oferece suporte total à publicação de pacotes de módulos Go. Isso requer o uso de uma versão do Go que compreenda os imports com sufixo /vN:
- 1.9.7+
- 1.10.3+
- 1.11+