Использование RESTful API с Go

Использование RESTful API с Go

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.

  результат GET-запроса

Простой 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 возвращает данные запроса, которые вы ей отправляете.

  результат POST-запроса

Создание веб-приложений на Go — это просто

Вы можете создавать веб-приложения с различной функциональностью в Go без зависимостей.

http package имеет функции, которые вам понадобятся для большинства ваших операций. Вы можете использовать этот пакет с другими, такими как json пакет для операций JSON, контекст пакет для сигнализации и пакет шаблона для создания шаблонов. В стандартной библиотеке есть много других пакетов.