mirror of
https://github.com/openmax-server/server.git
synced 2026-05-23 03:51:43 +03:00
feat: 23 опкод для регистрации, смс шлюз, докер
This commit is contained in:
90
sms-gateway/README.md
Normal file
90
sms-gateway/README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Смс шлюз
|
||||
|
||||
Микросервис для отправки SMS-кодов с маршрутизацией по провайдерам в зависимости от страны.
|
||||
|
||||
## Требования
|
||||
|
||||
- Docker и Docker Compose
|
||||
|
||||
## Запуск
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Сервис доступен на порту `8100`, API монтируется по префиксу `/sms-gateway`.
|
||||
|
||||
## Конфигурация
|
||||
|
||||
Все настройки находятся в `config.yaml`. Перезагрузка конфига без перезапуска:
|
||||
```bash
|
||||
curl -X POST http://localhost:8100/sms-gateway/admin/reload
|
||||
```
|
||||
|
||||
### Провайдеры
|
||||
|
||||
Два типа провайдеров:
|
||||
|
||||
**`sms_api`** — внешний HTTP-сервис, отправляет реальное SMS. Параметры:
|
||||
- `base_url` — базовый адрес сервиса
|
||||
- `send_endpoint` — эндпоинт отправки (по умолчанию `/auth/code`)
|
||||
- `timeout` — таймаут запроса в секундах
|
||||
|
||||
**`lk_api`** — внутренний провайдер, SMS не отправляет. Генерирует код и сохраняет его в Redis для отображения в личном кабинете.
|
||||
|
||||
### Маршрутизация
|
||||
|
||||
Правила задаются в `routing.rules`. Для каждого правила указываются префиксы номеров, основной провайдер и опциональный fallback. Если ни одно правило не совпало — используется `default_provider`.
|
||||
|
||||
Пример: номера `+7` идут через `sms_api`, при недоступности — через `lk_api`. Все остальные номера сразу через `lk_api`.
|
||||
|
||||
### Rate limiting
|
||||
|
||||
Настраивается в `settings.rate_limit`:
|
||||
- `max_attempts` — максимум запросов с одного номера
|
||||
- `window_seconds` — окно в секундах
|
||||
|
||||
## API
|
||||
|
||||
### Отправка кода
|
||||
```
|
||||
POST /sms-gateway/sms/send
|
||||
{"phone_number": "+79001234567"}
|
||||
```
|
||||
|
||||
### Личный кабинет
|
||||
|
||||
Получить все ожидающие коды:
|
||||
```
|
||||
GET /sms-gateway/lk/codes
|
||||
```
|
||||
|
||||
Получить код по номеру:
|
||||
```
|
||||
GET /sms-gateway/lk/code?phone=+79001234567
|
||||
```
|
||||
|
||||
Получить и удалить код (разовое считывание):
|
||||
```
|
||||
DELETE /sms-gateway/lk/code?phone=+79001234567
|
||||
```
|
||||
|
||||
### Администрирование
|
||||
|
||||
Проверить, какой провайдер выберется для номера:
|
||||
```
|
||||
GET /sms-gateway/admin/routing/resolve?phone=+79001234567
|
||||
```
|
||||
|
||||
Список правил маршрутизации:
|
||||
```
|
||||
GET /sms-gateway/admin/routing/rules
|
||||
```
|
||||
|
||||
Список активных провайдеров:
|
||||
```
|
||||
GET /sms-gateway/admin/providers
|
||||
```
|
||||
|
||||
## Swagger
|
||||
|
||||
Документация доступна по адресу: `http://localhost:8100/sms-gateway/docs`
|
||||
Reference in New Issue
Block a user