Consumindo APIs RESTful com Go

Consumindo APIs RESTful com Go

APIs RESTful são arquiteturas populares para transferência de dados pela web. APIs RESTful normalmente usam HTTP, tornando-as adequadas para casos em que a ausência de estado é importante.





Como qualquer linguagem do lado do servidor, você pode interagir com o protocolo HTTP e fazer solicitações HTTP em Go.





Introdução ao consumo de APIs RESTful em Go

o http O pacote fornece a maioria das funcionalidades necessárias para interagir com o protocolo HTTP em Go. Isso inclui fazer solicitações HTTP, e você não precisa necessariamente dependências externas, como Gin ou um banco de dados .





MAKEUSEO VÍDEO DO DIA

Você pode usar o http pacote para consumir APIs e buscar páginas para raspagem da web em Go .

Importe esses pacotes para começar a fazer solicitações HTTP em Go.



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

Você usará o bytes pacote para manipular fatias de bytes, o json pacote para formatar dados de solicitação, o fmt pacote para gravar na saída padrão, o ioutil pacote de entrada e saída, e o http pacote para envio de solicitações.

Uma solicitação GET simples em Go

Típica PEGUE solicitações lêem dados de um servidor e podem fornecer parâmetros para os dados dependendo da natureza e especificação da API.





Neste tutorial, você aprenderá a consumir APIs RESTful usando o serviço simples de solicitação e resposta do httpbin.

Aqui está um exemplo de como fazer uma solicitação HTTP com Go:





assistir a vídeos do youtube ao mesmo tempo
url := "https://httpbin.org/get" 
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
// continues [1] ...
}

o URL variável é o endpoint para o qual você está enviando a solicitação. o Pegue método recebe a URL, executa o Pegue request e retorna a resposta, incluindo seus cabeçalhos e corpo.

Você pode lidar com quaisquer erros da solicitação, dependendo de seus requisitos. Se não houver erros, você pode prosseguir para extrair as informações necessárias do Pegue solicitar.

} else { 
// ... [1] continued
responseData, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Printf("There was an error from parsing the request body %s", err.Error())
} else {
// continues [2] ...
}
}

A resposta Corpo campo contém o corpo da resposta. Usando o Leia tudo método do ioutil pacote, você pode ler o corpo da resposta e lidar com possíveis erros.

} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

o senão A instrução imprime o corpo da resposta em seu console se não houver erros na operação de leitura.

Aqui está o resultado da PEGUE solicitação para o endpoint do httpbin.

  resultado da requisição GET

Uma solicitação POST simples em Go

As solicitações POST típicas fornecem cargas úteis de dados ao servidor e o servidor retorna uma resposta dependendo da operação.

Aqui está uma estrutura simples para codificar uma carga JSON para o servidor como parte da solicitação POST.

type JSON struct { 
info string
message string
}

o JSON estrutura tem o informação e mensagem campos de string e você inicializará uma instância de struct para a solicitação.

url := "https://httpbin.org/post" 

jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}

o URL A variável armazena o endpoint de solicitação POST do site httpbin. o jsonInstance A variável é uma instância da estrutura JSON que você pode usar para armazenar e enviar dados estruturados.

Você pode usar o Marechal método do json pacote para formatar JSON para a solicitação.

FF0ED9650D2AC350A71C4CE143C44932222296432

o Marechal O método também retorna um erro que você pode manipular. Se não houver erros com a operação de marshaling JSON, você poderá prosseguir para fazer a solicitação POST.

Você pode usar o Publicar método para fazer solicitações POST. o Publicar O método recebe o endpoint da URL, o tipo de conteúdo da solicitação e um buffer da carga útil. Ele retorna a resposta e um erro.

} else { 
// ... continued [1]
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))

if err != nil {
fmt.Println("there was an error with the request", err.Error())
} else {
// continues [2] ...
}
}

Novamente, você pode ler o corpo da resposta usando o Leia tudo método do ioutil pacote:

} else { 
// ... continued [2]
data, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Println("there was an error reading the request body", err.Error())
} else {
fmt.Println(string(data))
}
}

o Imprimir A instrução gera o resultado da solicitação HTTP para seu console.

Enquanto o documentação do httpbin especifica, esse endpoint POST retorna os dados de solicitação que você envia.

melhor lugar para baixar livros epub
  resultado da solicitação POST

Criar aplicativos da Web em Go é fácil

Você pode criar aplicativos da Web com várias funcionalidades em Go sem dependências.

o http pacote tem as funções que você precisa para a maioria de suas operações. Você pode usar este pacote com outros como o json pacote para operações JSON, o contexto pacote para sinalização e o pacote modelo para modelagem. Existem muitos outros pacotes na biblioteca padrão.