RESTful API — это популярные архитектуры для передачи данных через Интернет. RESTful API обычно используют HTTP, что делает их подходящими для случаев, когда важно безгражданство.
Как и любой серверный язык, вы можете взаимодействовать с протоколом HTTP и выполнять HTTP-запросы в Go.
Начало работы с использованием RESTful API в Go
http Пакет предоставляет большую часть функций, которые вам понадобятся для взаимодействия с протоколом HTTP в Go. Это включает в себя выполнение HTTP-запросов, и вам не обязательно внешние зависимости, такие как Gin или база данных .
СДЕЛАТЬ ВИДЕО ДНЯ
Вы можете использовать http пакет для использования API и выборки страниц для веб-скрапинг в Go .
Импортируйте эти пакеты, чтобы начать делать HTTP-запросы в Go.
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
Вы будете использовать байты пакет для управления байтовыми фрагментами, json пакет для форматирования данных запроса, ФМТ пакет для записи в стандартный вывод, ioutil пакет для ввода и вывода, а также http пакет для отправки запросов.
как скачать шоу с hulu
Простой запрос GET в Go
Типичный ПОЛУЧИТЬ запрашивает чтение данных с сервера и может предоставлять параметры для данных в зависимости от характера и спецификации API.
В этом руководстве вы узнаете, как использовать RESTful API с помощью простой службы запросов и ответов httpbin.
Вот пример создания HTTP-запроса с помощью Go:
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] ...
}
URL переменная — это конечная точка, на которую вы отправляете запрос. Получить метод принимает URL-адрес, выполняет Получить запрос и возвращает ответ, включая его заголовки и тело.
Вы можете обрабатывать любые ошибки из запроса в зависимости от ваших требований. Если ошибок нет, можно переходить к извлечению необходимой информации из Получить запрос.
} 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] ...
}
}
ответ Тело поле содержит тело ответа. С использованием Читать все метод ioutil package, вы можете прочитать тело ответа и обработать возможные ошибки.
} else {
// ... [2] continued
fmt.Println(string(responseData))
}
еще оператор выводит тело ответа на вашу консоль, если в операции чтения нет ошибок.
Вот результат ПОЛУЧИТЬ запрос к конечной точке httpbin.
Простой POST-запрос в Go
Типичные запросы POST предоставляют полезные данные на сервер, и сервер возвращает ответ в зависимости от операции.
Вот простая структура для кодирования полезной нагрузки JSON на сервер как часть запроса POST.
построить свой собственный Android TV Box
type JSON struct {
info string
message string
}
JSON структура имеет Информация а также сообщение строковые поля, и вы инициализируете экземпляр структуры для запроса.
url := "https://httpbin.org/post"
jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}
URL В переменной хранится конечная точка запроса POST с веб-сайта httpbin. jsonInstance переменная — это экземпляр структуры JSON, которую вы можете использовать для хранения и отправки структурированных данных.
Вы можете использовать Маршал метод из json package для форматирования JSON для запроса.
jsonData, err := json.Marshal(jsonInstance)
if err != nil {
fmt.Println("there was an error with the JSON", err.Error())
} else {
// continues [1] ...
}
Маршал метод также возвращает ошибку, которую вы можете обработать. Если в операции маршалинга JSON нет ошибок, вы можете перейти к выполнению запроса POST.
Вы можете использовать Почта способ выполнения POST-запросов. Почта Метод принимает конечную точку URL, тип содержимого запроса и буфер полезной нагрузки. Он возвращает ответ и ошибку.
} 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] ...
}
}
Опять же, вы можете прочитать тело ответа, используя Читать все метод ioutil упаковка:
} 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))
}
}
Распечатать Оператор выводит результат HTTP-запроса на вашу консоль.
Как httpbin документация указывает, что эта конечная точка POST возвращает данные запроса, которые вы ей отправляете.
Создание веб-приложений на Go — это просто
Вы можете создавать веб-приложения с различной функциональностью в Go без зависимостей.
http package имеет функции, которые вам понадобятся для большинства ваших операций. Вы можете использовать этот пакет с другими, такими как json пакет для операций JSON, контекст пакет для сигнализации и пакет шаблона для создания шаблонов. В стандартной библиотеке есть много других пакетов.