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.
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.
FF0ED9650D2AC350A71C4CE143C44932222296432o 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
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.