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.

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.

importar (
"bytes"
"codificação/json"
"fm"
"io/ioutil"
"rede/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.

instagram viewer

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:

url := "https://httpbin.org/get"
resposta, err := http. Obter (url)

E se err!= nada {
fmt. Printf("Ocorreu um erro na solicitação de API %s", err. Erro())
} senão {
// continua [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.

} senão {
//... [1] continuação
responseData, err := ioutil. ReadAll (resposta. Corpo)

E se err!= nada {
fmt. Printf("Ocorreu um erro ao analisar o corpo da solicitação %s", err. Erro())
} senão {
// continua [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.

} senão {
//... [2] continuação
fmt. Imprimirln(corda(respostaDados))
}

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.

modelo JSON estrutura {
informação corda
mensagem corda
}

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: "esperando sucesso",
mensagem: "o pedido deve Retorna ",
}

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.

jsonData, err := json. Marechal (jsonInstance)
E se err!= nada {
fmt. Println("ocorreu um erro com o JSON", err. Erro())
} senão {
// continua [1] ...
}

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.

} senão {
//... continuação [1]
resposta, err := http. Post (url, "aplicativo/json", bytes. NewBuffer (jsonData))

E se err!= nada {
fmt. Println("Ocorreu um erro na solicitação", err. Erro())
} senão {
// continua [2] ...
}
}

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

} senão {
//... continuação [2]
dados, err := ioutil. ReadAll (resposta. Corpo)

E se err!= nada {
fmt. Println("Ocorreu um erro ao ler o corpo da solicitação", err. Erro())
} senão {
fmt. Imprimirln(corda(dados))
}
}

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.

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.