module
0.0.0-20241209140520-d5462cde2281
Repository: https://github.com/patyukin/mbs-api-gateway.git
Documentation: pkg.go.dev
# README
API Gateway Service
API Gateway Service — это микросервис, реализованный с использованием HTTP, который служит шлюзом для маршрутизации и управления API запросами к внутренним сервисам.
Визуализация API Gateway и внутренних сервисов
@startuml
actor User
database auth
database reports
database accounts
database credits
database notifies
[User] --> [API Gateway]
[API Gateway] --> [Auth service]
[Auth service] --> auth
[Auth service] --> [Notifier service]
[API Gateway] --> [Credit service]
[Credit service] --> credits
[Credit service] --> [Notifier service]
[API Gateway] --> [Account service]
[Account service] --> accounts
[Account service] --> [Notifier service]
[API Gateway] --> [Report service]
[Report service] --> reports
[Report service] --> [Notifier service]
[Notifier service] --> notifies
@enduml
Содержание
Функциональность
- Регистрация и аутентификация пользователей через
auth-service
. - Обеспечение безопасного взаимодействия между клиентом и внутренними сервисами.
- Проверка jwt токенов.
- Интеграция с внутренними микросервисами.
Технологии
- Go 1.23+
- HTTP REST
- net/http — для маршрутизации HTTP-запросов
- swagger — для автогенерации Swagger-документации
- Docker (для контейнеризации)
Установка
-
Клонируйте репозиторий:
git clone [email protected]:patyukin/mbs-api-gateway.git cd mbs-api-gateway cp config-example.yaml config.yaml
-
Установите необходимые зависимости:
make tidy
Запуск
Запуск с Docker:
make up
Использование
API Gateway предоставляет REST API-интерфейсы для взаимодействия с внутренними сервисами. Примеры HTTP запросов:
- Регистрация пользователя:
curl -X POST http://localhost:5000/v1/sign-up \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "securepassword123",
"telegram_login": "johndoe_telegram",
"first_name": "John",
"last_name": "Doe",
"patronymic": "Jonathan",
"date_of_birth": "1990-01-01",
"phone": "79000000000",
"address": "Moscow, Russia, 1, 1, 1"
}'
Тестирование
-
Запуск go тестов
make test
-
В папке
tests
запускать тесты HTTP запросов