Создавайте RESTful API с помощью Gin Framework
Опубликовано: 2022-09-02Вы с нетерпением ждете создания REST API с помощью фреймворка Gin? Тогда вам следует внимательно прочитать этот блог. С помощью простых шагов вы научитесь создавать базовый API, следуя которому вы сможете выполнять другие сложные проекты. И да, вы можете работать над этим самостоятельно, не пользуясь услугами разработчиков Golang . Но прежде чем мы начнем, ознакомьтесь с теоретическим аспектом фреймворка Gin.
- Первая задача, которую нужно выполнить
- Сначала вам нужно создать каталог в рабочей области. Вы будете использовать командную строку, если используете компьютер с Windows. Используйте терминал, если вы используете macOS или Linux в качестве операционной системы.
- В этом сценарии я буду использовать командную строку.
компакт-диск go-workspace
мкдир работа
CD работа
код .
Когда мы набираем код ., мы видим, как запускается VS Code. В вашем случае это может быть другая IDE или редактор.
- Начните работу с кодом VS
- Первое, что мы сделаем, это создадим файл main.go. После этого нам нужно загрузить фреймворк gin, чтобы создать REST API.
- Теперь нам нужно создать файл go.mod. Мы набираем:
перейти мод init golang.com/job
- После создания файла go.mod мы введем:
зайди на github.com/gin-gonic/gin
Это приведет к созданию файла go.sum, а также к загрузке всех необходимых пакетов, связанных с фреймворком gin.
- Начнем с простого API
- Мы просто пишем код
основной пакет
импорт (
«ФМТ»
«сеть/http»
«github.com/gin-gonic/джин»
)
основная функция()
{s :=gin.Default()
s.GET ("", func (c *gin.Context){
c.String(http.StatusOK, «Что такое должность?»)
})
s.Run («локальный хост: 8000»)
}
- Как видите, мы импортировали все пакеты, которые требуются приложению. Затем мы переходим непосредственно к функции main. Что мы делаем, так это создаем модуль промежуточного программного обеспечения восстановления или регистратора по умолчанию для Gin.
- Настройки по умолчанию включены в переменную «s». И мы будем использовать эту переменную, чтобы помочь в разработке GET API. Первый аргумент, который я привел в этом примере, — это URL-адрес API.
- Базовый URL-адрес, указанный w.Run("localhost:8000"), будет использоваться для размещения API на локальном хосте:8000. Кроме того, первый аргумент фактически указывает относительный маршрут API.
- Функция-обработчик func (c *gin.Context) относится к последовательности функций, которую вы можете указать.
- Указатель на переменную *gin.Context служит аргументом функции. Таким образом, «с» в данном случае означает контекст.
- Контекст должен возвращать значение c.String или c.JSON. Здесь действуют два критерия. Состояние указывается первым аргументом, простым целым числом (http.StatusOK). Мы можем использовать это, потому что мы импортировали пакет net/http.
- Я просто отправляю образец строки после этого. Это «Какова рабочая роль?»
- Давайте запустим вышеуказанную программу
Чтобы запустить программу, нам нужно ввести go run main.go.

- Как видите, есть запрос GET на пустой URL. Он также поставляется с настраиваемой функцией. Кроме того, видна работа двигателя в деблокировочном режиме. Существует единственная активная конечная точка на локальном хосте 8000.
- В веб-браузере мы можем ввести localhost:8000, чтобы увидеть:
- Тем временем вы увидите следующий снимок в VS Code.

Что это значит? Что ж, инфраструктура gin играет здесь огромную роль в отслеживании времени отклика исполняемого кода.
- Концентрация на GET API, где передача параметров обрабатывается URL-адресом
Следующий код предполагает, что API предоставит вам значение, в идеале строку, в ответ на URL-адрес.
s.GET("/:get", func (c *gin.Context){

var val = c.Param("getr")
c.JSON(http.StatusOK, gin.H{
«данные ответа»: val,
})
})
//2-й раздел
- Мы можем указать имя каждой переменной в запросе GET, разделив их двоеточием. Таким образом, все, что введено после основного URL-адреса, будет считаться «получением».
- Чтобы определить значение «get», мы должны определить контекст Param и имя упомянутой нами переменной. Вэл получит «получить» от Джина и будет проинформирован о результате.
- Далее мы видим, что я передаю JSON, содержащий значение.
Вы работаете над чем-то сложным? Тогда было бы лучше всего воспользоваться услугами разработки Golang на случай, если вы наткнетесь на проблему и не сможете ее исправить.
- Давайте запустим программу выше
- Опять же, нам придется запустить программу, набрав go run main.go.
Если вы видите сообщение «tcp 127.0.0.1: 8000: bind: обычно разрешено только одно использование каждого адреса сокета (протокол/сетевой адрес/порт)», то вам необходимо выполнить операцию в командной строке.
нестат-ано | найтистр :8000
Проверьте значение LISTENING (например, 7932), затем вам нужно ввести
тасккилл/pid 7932/F
Это приведет к завершению процесса pid.
- В браузере выполняем следующее:

Причина, по которой нам пришлось вводить строку после указания localhost:8000, заключается в том, что API ожидает строку из URL-адреса.
- Попытка POST API
- Здесь мы попытаемся подключиться к POST API. Кроме того, мы знаем, что данные будут присутствовать в теле. Вот когда структура пригодится.
- Вы помните этот раздел?
основной пакет
импорт (
«ФМТ»
«сеть/http»
«github.com/gin-gonic/джин»
)
- После этого мы создадим структуру с двумя полями данных, как вы можете видеть:
введите структуру работы {
Зарплата int `json: "зарплата" привязка: "требуется"`
Строка имени `json: "имя" привязка: "обязательно"`
}
- Json: «зарплата» и json: «имя» представляют собой разные ключи. Вы также можете видеть, что привязка была указана как «требуемая».
- После //2-го раздела мы наберем:
s.POST("/highlight", func (c *gin.Context){
переменная работа данных
если ошибка := c.ShouldBind(&data); ошибка != ноль{
fmt.Println (ошибка)
c.JSON(http.StatusBadRequest, gin.H{
"ошибка": fmt.Sprintf("%v", ошибка),
})
} еще{
c.JSON(http.StatusOK, gin.H{
«данные»: данные,
})
}
})
- Давайте посмотрим на этот блок кода. В s.POST мы создадим объект для задания. После этого контекст «c» должен быть присоединен к модели данных. Если c.ShouldBind(&data) выдает ошибку, он предупредит API о проблеме.
- Я сделал неверный запрос, демонстрирующий ошибку, наблюдаемую в «error»:fmt.Sprintf(«%v», err) в c.JSON(http.StatusBadRequest).
- Если проблем нет, ключ «data» будет использоваться для передачи данных обратно в ответ API.
- Давайте запустим последний блок кода
- Теперь рассмотрим заключительный этап программы. Мы должны ввести go run main.go, чтобы сделать это. Кроме того, я буду использовать Postman, чтобы показать, как работает API и как работает код. Настольную версию нужно просто установить.
- Вы можете видеть, что у меня есть два поля данных в теле, если вы посмотрите на скриншот ниже. Raw и JSON должны быть выбором для тела.

- Когда мы нажмем «Отправить», мы увидим следующий результат:
{
"данные": {
«зарплата»: 23000,
«имя»: «Роберт Холл»
}
}
Вы смогли понять программу? Да? Тогда отлично. В последнем случае мы видим три запущенных API: один, в URL-адресе которого ничего не указано, тот, который ожидает строку, и последний, который ожидает значения в теле. Надеюсь, теперь вы сможете справиться с некоторыми сложными задачами REST API.