diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index bbf713e..d403ede 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -29,7 +29,7 @@ jobs: docker --version # Setup Docker Buildx for multi-platform builds - docker buildx create --name multiplatform --use + docker buildx create --use docker buildx inspect --bootstrap - name: Login to Docker Hub diff --git a/README.md b/README.md index fe76255..594bab1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,154 @@ -# hello_gitea +# Hello Gitea API -test repo to try with actions - v1.0.11 \ No newline at end of file +Простой 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-` + +### Из Docker образа + +```bash +docker pull /hello-api:latest +docker run -p 8080:8080 /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 \ No newline at end of file