154 lines
3.3 KiB
Markdown
154 lines
3.3 KiB
Markdown
# 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 |