Files
hello_gitea/README.md
2025-07-28 09:56:39 +06:00

154 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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