Как создать простой REST API на Go: пошаговый разбор
Введение
Сейчас почти все приложения работают через API. Например, когда ты открываешь приложение на телефоне и видишь список пользователей или постов — эти данные приходят с сервера через API.
API — это просто способ, с помощью которого программы обмениваются данными. Чаще всего используется REST API, который работает через HTTP и возвращает данные в формате JSON.
В Go есть всё необходимое, чтобы сделать API без дополнительных библиотек. В этой статье я попробую разобраться, как это работает, и написать простой пример.
Основная часть
1. Что вообще такое API
Если коротко, API — это посредник между клиентом и сервером.
Например:
- приложение отправляет запрос
- сервер его принимает
- возвращает ответ
Обычно используются такие методы:
- GET — получить данные
- POST — отправить
- DELETE — удалить
В этой статье будем использовать самый простой вариант — GET.
2. Что будем делать
Чтобы не усложнять, сделаем API, которое возвращает список пользователей.
То есть при запросе /users сервер будет отдавать данные.
3. Описываем данные
Сначала создадим структуру:
Здесь всё просто: у пользователя есть имя.
Тег json:"name" нужен, чтобы правильно сформировался JSON.
4. Пишем обработчик
Теперь функция, которая будет возвращать данные:
Здесь мы просто создаём список и сразу отправляем его клиенту.
5. Подключаем маршрут
Теперь нужно сказать серверу, когда вызывать эту функцию:
То есть если зайти на /users, выполнится getUsers.
6. Запускаем сервер
Соберём всё вместе:
После запуска можно открыть: http://localhost:8080/users
7. Проверяем результат
Если всё работает, мы увидим примерно такой ответ:
Это обычный JSON, который используют почти все API.
8. Добавим проверку метода
Чтобы было чуть правильнее, проверим тип запроса:
Теперь сервер будет отвечать только на GET-запросы.
Схема работы API
Описание схемы
На схеме показано, как примерно работает API в обычном приложении.
Слева находятся клиенты — это может быть компьютер или телефон. Они отправляют запросы на сервер. Например, приложение на телефоне делает запрос через API, чтобы получить данные.
Дальше запрос попадает на сервер. Сначала он проходит через роутер, который определяет, какую именно функцию нужно вызвать.
После этого сервер обрабатывает запрос. Если нужно, он обращается к базе данных — например, чтобы получить список пользователей.
Когда всё готово, сервер отправляет ответ обратно клиенту. Клиент получает данные и показывает их пользователю.
Заключение
В этой работе я попробовал сделать простой API на Go и разобраться, как он работает. Оказалось, что базовый API можно написать довольно быстро, если понять, как устроены обработчики и запросы.
На практике стало понятнее, как сервер возвращает данные и как используется JSON. В целом Go показался удобным для таких задач — всё довольно просто и без лишнего кода.
Дальше можно попробовать добавить новые методы или подключить базу данных, чтобы сделать что-то более реальное.