RESTful API — это популярные архитектуры для передачи данных через Интернет. RESTful API обычно используют HTTP, что делает их подходящими для случаев, когда важно безгражданство.

Как и любой серверный язык, вы можете взаимодействовать с протоколом HTTP и выполнять HTTP-запросы в Go.

Начало работы с использованием RESTful API в Go

http Пакет предоставляет большую часть функций, которые вам понадобятся для взаимодействия с протоколом HTTP в Go. Это включает в себя выполнение HTTP-запросов, и вам не обязательно внешние зависимости, такие как Gin или база данных.

Вы можете использовать http пакет для использования API и выборки страниц для веб-скрапинг в Go.

Импортируйте эти пакеты, чтобы начать делать HTTP-запросы в Go.

импорт (
"байты"
"кодировка/json"
"ФМТ"
"io/ioutil"
"сеть/http"
)

Вы будете использовать байты пакет для управления байтовыми фрагментами, json пакет для форматирования данных запроса, ФМТ пакет для записи в стандартный вывод, ioutil пакет для ввода и вывода, а также http пакет для отправки запросов.

instagram viewer

Простой запрос GET в Go

Типичный ПОЛУЧИТЬ запрашивает чтение данных с сервера и может предоставлять параметры для данных в зависимости от характера и спецификации API.

В этом руководстве вы узнаете, как использовать RESTful API с помощью простой службы запросов и ответов httpbin.

Вот пример создания HTTP-запроса с помощью Go:

адрес := "https://httpbin.org/get"
ответ, ошибка := http. Получить (адрес)

если ошибся != ноль {
ФМТ. Printf("Произошла ошибка при запросе API %s", err. Ошибка())
} еще {
// продолжается [1] ...
}

URL переменная — это конечная точка, на которую вы отправляете запрос. Получить метод принимает URL-адрес, выполняет Получить запрос и возвращает ответ, включая его заголовки и тело.

Вы можете обрабатывать любые ошибки из запроса в зависимости от ваших требований. Если ошибок нет, можно переходить к извлечению необходимой информации из Получить запрос.

} еще {
//... [1] продолжение
данные ответа, ошибка := ioutil. Прочитать все (ответ. Тело)

если ошибся != ноль {
ФМТ. Printf("Произошла ошибка при синтаксическом анализе тела запроса %s", err. Ошибка())
} еще {
// продолжается [2] ...
}
}

ответ Тело поле содержит тело ответа. С использованием Читать все метод ioutil package, вы можете прочитать тело ответа и обработать возможные ошибки.

} еще {
//... [2] продолжение
ФМТ. Распечатать(нить(данные ответа))
}

еще оператор выводит тело ответа на вашу консоль, если в операции чтения нет ошибок.

Вот результат ПОЛУЧИТЬ запрос к конечной точке httpbin.

Простой POST-запрос в Go

Типичные запросы POST предоставляют полезные данные на сервер, и сервер возвращает ответ в зависимости от операции.

Вот простая структура для кодирования полезной нагрузки JSON на сервер как часть запроса POST.

тип JSON структура {
Информация нить
сообщение нить
}

JSON структура имеет Информация а также сообщение строковые поля, и вы инициализируете экземпляр структуры для запроса.

адрес := "https://httpbin.org/post"

jsonInstance := JSON {
информация: "ожидаем успеха",
сообщение: "запрос должен возвращаться ",
}

URL В переменной хранится конечная точка запроса POST с веб-сайта httpbin. jsonInstance переменная — это экземпляр структуры JSON, которую вы можете использовать для хранения и отправки структурированных данных.

Вы можете использовать Маршал метод из json package для форматирования JSON для запроса.

jsonData, ошибка := json. Маршал (jsonInstance)
если ошибся != ноль {
ФМТ. Println("Произошла ошибка JSON", err. Ошибка())
} еще {
// продолжается [1] ...
}

Маршал метод также возвращает ошибку, которую вы можете обработать. Если в операции маршалинга JSON нет ошибок, вы можете перейти к выполнению запроса POST.

Вы можете использовать Почта способ выполнения POST-запросов. Почта Метод принимает конечную точку URL, тип содержимого запроса и буфер полезной нагрузки. Он возвращает ответ и ошибку.

} еще {
//... продолжение [1]
ответ, ошибка := http. Сообщение (url, "application/json", bytes. Новый буфер (jsonData))

если ошибся != ноль {
ФМТ. Println("Произошла ошибка запроса", err. Ошибка())
} еще {
// продолжается [2] ...
}
}

Опять же, вы можете прочитать тело ответа, используя Читать все метод ioutil упаковка:

} еще {
//... продолжение [2]
данные, ошибка := ioutil. Прочитать все (ответ. Тело)

если ошибся != ноль {
ФМТ. Println("Произошла ошибка чтения тела запроса", err. Ошибка())
} еще {
ФМТ. Распечатать(нить(данные))
}
}

Распечатать Оператор выводит результат HTTP-запроса на вашу консоль.

Как httpbin документация указывает, что эта конечная точка POST возвращает данные запроса, которые вы ей отправляете.

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

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

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