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/