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. Вы можете расширить этот пример, добавив больше маршрутов, обработку ошибок и другие функции.