# Hello Gitea API

Простой REST API сервер, построенный на Go с использованием Gin framework.

## 🚀 Возможности

- ✅ REST API с JSON ответами
- ✅ Health check endpoint
- ✅ CORS поддержка
- ✅ Мультиплатформенная сборка
- ✅ Docker образы для Linux AMD64/ARM64
- ✅ Автоматические релизы через Gitea Actions

## 📦 Установка

### Из бинарного файла

1. Скачайте бинарный файл для вашей платформы из [релизов](https://direct-dev.ru/gitea/GiteaAdmin/hello_gitea/releases)
2. Распакуйте архив
3. Запустите: `./hello-api-<platform>`

### Из Docker образа

```bash
docker pull <username>/hello-api:latest
docker run -p 8080:8080 <username>/hello-api:latest
```

### Из исходного кода

```bash
git clone https://direct-dev.ru/gitea/GiteaAdmin/hello_gitea.git
cd hello_gitea
go mod download
go run main.go
```

## 🔧 Конфигурация

Сервер запускается на порту 8080 по умолчанию. Можно изменить через переменную окружения:

```bash
export PORT=3000
./hello-api
```

## 📡 API Endpoints

### GET /
Основной endpoint

**Ответ:**
```json
{
  "message": "Hello, World!",
  "version": "1.0.0"
}
```

### GET /health
Health check endpoint

**Ответ:**
```json
{
  "status": "ok",
  "version": "1.0.0"
}
```

### GET /api/v1/info
Информация о сервисе

**Ответ:**
```json
{
  "service": "hello-api",
  "status": "running",
  "version": "1.0.0"
}
```

### POST /api/v1/echo
Echo endpoint - возвращает отправленное сообщение

**Запрос:**
```json
{
  "message": "Hello from client!"
}
```

**Ответ:**
```json
{
  "echo": "Hello from client!",
  "version": "1.0.0"
}
```

## 🛠 Разработка

### Зависимости

- Go 1.21+
- Gin framework

### Сборка

```bash
# Для текущей платформы
go build -o hello-api main.go

# Для Linux AMD64
GOOS=linux GOARCH=amd64 go build -o hello-api-linux-amd64 main.go

# Для Linux ARM64
GOOS=linux GOARCH=arm64 go build -o hello-api-linux-arm64 main.go

# Для Windows
GOOS=windows GOARCH=amd64 go build -o hello-api-windows-amd64.exe main.go

# Для macOS
GOOS=darwin GOARCH=amd64 go build -o hello-api-darwin-amd64 main.go
GOOS=darwin GOARCH=arm64 go build -o hello-api-darwin-arm64 main.go
```

### Тестирование

```bash
# Запуск сервера
go run main.go

# Тестирование API
curl http://localhost:8080/
curl http://localhost:8080/health
curl http://localhost:8080/api/v1/info
curl -X POST http://localhost:8080/api/v1/echo \
  -H "Content-Type: application/json" \
  -d '{"message":"Hello!"}'
```

## 🚀 CI/CD

При создании тега (например, `v1.1.0`) автоматически:

1. Собираются бинарники для всех платформ
2. Создается Docker образ для Linux AMD64/ARM64
3. Образ публикуется в Docker Hub
4. Создается релиз в Gitea с бинарниками

## 📄 Лицензия

MIT License