REST (Передача репрезентативного состояния) — это архитектурный метод связи, который использует протокол HTTP для обмена данными. Интерфейс прикладного программирования (API) — это соединение между компьютерами или между компьютерными программами. Это тип программного интерфейса, предлагающий услуги другим программам. Короче говоря, API может заставить другие приложения, будь то мобильные приложения или что-то еще, общаться с нашим приложением.

В этом посте я хочу рассказать, как простым способом создать простой REST API в Go, используя gin и gorm.

Сначала создайте новый проект go с помощью команды go mod.

# Create folder
mkdir go-api
# Change dir into go-api
cd go-api
# Init go project
go mod init go-api

Установить пакет джина

go get -u github.com/gin-gonic/gin

Установите пакет gorm и драйвер db, драйвер db можно настроить по мере необходимости или по желанию. Для поддерживаемого драйвера db вы можете проверить здесь. В этом посте я буду использовать postgreSQL.

go get -u gorm.io/gorm
go get -u gorm.io/driver/postgres

Поскольку Go позволяет нам структурировать проект в соответствии с тем, что мы хотим, а также Go не имеет стандартной структуры. Это структура, которую я буду использовать для этого проекта, или вы можете определить свою собственную.

Создайте файл go для установки подключения к базе данных, я создам его в src/config
как db.go.

package database

import (
 "gorm.io/driver/postgres"
 "gorm.io/gorm"
)

func Connect() *gorm.DB {
 dsn := "host=localhost user=root password=root dbname=go-api port=9920 sslmode=disable TimeZone=Asia/Shanghai"
 db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
 if err != nil {
  panic(err)
 }

 return db
}

Затем создайте структуру для представления наших данных из базы данных, в этом я создам простую src/apps/post/model.go

package post

type Post struct {
 ID    int    `json:"id"`
 Title string `json:"title"`
 Body  string `json:"body"`
}

Затем создайте файл контроллера или обработчика src/apps/post/handler.go

Создайте файл go src/cmd/main/main.go, затем добавьте код для настройки маршрутизатора.

package main

import (
 "go-api/src/apps/post"
 "go-api/src/config/database"

 "github.com/gin-gonic/gin"
)

func main() {
 // Connect to database
 db := database.Connect()

 // Migrate database
 db.AutoMigrate(&post.Post{})

 // Create post handler
 postHandler := post.NewPostHandler(db)

 // Create router
 router := gin.Default()
 api := router.Group("/api")
 postRoute := api.Group("/post")
 postRoute.GET("", postHandler.GetPosts)
 postRoute.GET("/:id", postHandler.GetPost)
 postRoute.POST("", postHandler.CreatePost)
 postRoute.PUT("/:id", postHandler.UpdatePost)
 postRoute.DELETE("/:id", postHandler.DeletePost)

 // Run server
 router.Run()
}

Тестирование
Выполните go run src/cmd/main/main.go. После запуска нашего приложения мы можем протестировать наш API с помощью таких приложений, как postman, insomnia и т. д. Я буду использовать postman для тестирования нашего API.

Спасибо, что прочитали мой пост, пожалуйста, не стесняйтесь оставлять комментарии для любых предложений или вопросов. Поделитесь этим постом, если считаете его полезным. До встречи…

Репозиторий
 –
https://github.com/awgst/go-api

Ссылки
 –
https://www.ibm.com/topics/rest-apis#:~:text=the%20next%20step-,What%20is%20a%20REST% 20API%3F,репрезентативный%20состояние%20перенос%20архитектурный%20стиль.
- https://gorm.io/
- https://gin-gonic.com/