golang echo
Для создания простого API на Go с использованием фреймворка Echo, вы можете следовать этому примеру. Мы создадим простой API с двумя маршрутами: один для получения списка пользователей и другой для добавления нового пользователя.
### Шаг 1: Установка Echo
Если у вас еще не установлен Echo, установите его с помощью `go get`:
```bash
go get -u github.com/labstack/echo/v4
```
### Шаг 2: Создание проекта
Создайте новый проект и структуру папок:
```
my-echo-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/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
var users = []User{
{ID: 1, Name: "Alice", Email: "alice@example.com"},
{ID: 2, Name: "Bob", Email: "bob@example.com"},
}
func main() {
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// Routes
e.GET("/users", getUsers)
e.POST("/users", createUser)
// Start server
e.Logger.Fatal(e.Start(":8080"))
}
// Handler
func getUsers(c echo.Context) error {
return c.JSON(http.StatusOK, users)
}
func createUser(c echo.Context) error {
user := new(User)
if err := c.Bind(user); err != nil {
return err
}
user.ID = len(users) + 1
users = append(users, *user)
return 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 с использованием фреймворка Echo. Вы можете расширить этот пример, добавив больше маршрутов, обработку ошибок и другие функции.