golang gin

Пример простого API на Go с использованием фреймворка Gin. Мы создадим простой API с двумя маршрутами: один для получения списка пользователей и другой для добавления нового пользователя. ### Шаг 1: Установка Gin Если у вас еще не установлен Gin, установите его с помощью `go get`: ```bash go get -u github.com/gin-gonic/gin ``` ### Шаг 2: Создание проекта Создайте новый проект и структуру папок: ``` my-gin-api/ ├── main.go └── user.go ``` ### Шаг 3: Создание модели пользователя Создайте файл `user.go` и определите структуру пользователя: ```go package main type User struct { ID int `json:"id"` Name string `json:"name"` Email string `json:"email"` } ``` ### Шаг 4: Создание основного файла Создайте файл `main.go` и напишите код для создания API: ```go package main import ( "net/http" "strconv" "github.com/gin-gonic/gin" ) var users = []User{ {ID: 1, Name: "Alice", Email: "alice@example.com"}, {ID: 2, Name: "Bob", Email: "bob@example.com"}, } func main() { r := gin.Default() // Routes r.GET("/users", getUsers) r.POST("/users", createUser) // Start server r.Run(":8080") } // Handler func getUsers(c *gin.Context) { c.JSON(http.StatusOK, users) } func createUser(c *gin.Context) { var user User if err := c.BindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } user.ID = len(users) + 1 users = append(users, user) c.JSON(http.StatusCreated, user) } ``` ### Шаг 5: Запуск сервера Запустите сервер, выполнив команду: ```bash go run main.go ``` Сервер будет запущен на порту `8080`. ### Шаг 6: Тестирование API Теперь вы можете протестировать API с помощью `curl` или любого другого инструмента для работы с HTTP-запросами. #### Получение списка пользователей: ```bash curl http://localhost:8080/users ``` Вы должны увидеть ответ: ```json [ {"id":1,"name":"Alice","email":"alice@example.com"}, {"id":2,"name":"Bob","email":"bob@example.com"} ] ``` #### Добавление нового пользователя: ```bash curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d '{"name":"Charlie","email":"charlie@example.com"}' ``` Вы должны увидеть ответ: ```json {"id":3,"name":"Charlie","email":"charlie@example.com"} ``` ### Заключение Этот пример демонстрирует, как создать простой API на Go с использованием фреймворка Gin. Вы можете расширить этот пример, добавив больше маршрутов, обработку ошибок и другие функции.