Данный сервер предназначен для скрытия ключа дадаты из заголовков запроса и увеличения скорости реакции на запрос примерно в 60 раз при чтении из кеша. Дополнительно достигается увеличение ограничения количества запросов к дадате путем снижения количества реальнных запросов благодаря использованию кеша.
На текущем этапе развития сервер кеширует в Redis результат любого удачного запроса. Информация об организации по ИНН кешируется с увеличенным сроком жизни.
Для запроса информации о юр.лице по ИНН (/suggestions/api/4_1/rs/findById/party
)
создается дополнительный ключ вида inn:100500
со ссылкой на результат запроса.
Можно ограничить максимальное количество разрешенных запросов к дадате в сутки.
Таким образом можно балансировать ресурс дадаты между несколькими потребителями.
Для этого нужно запустить несколько копий сервера с единым кешем и разными
идентификаторами приложения, такой запуск не поддерживается через ddproxy.sh
.
Ограничение количества запросов не распространяется на те, что попали в кеш.
В суточном счетчике запросов учитываются только те, что завершились успешно,
сутки считаются по локальной таймзоне сервера, где запущен прокси.
Сервер читает свою конфигурацию при запуске из файла .env
в корневой папке приложения.
Перезагрузка конфигурации без перезапуска сервера не предусмотрена.
APP_ID=default # идентификатор приложения для установки ограничений
APP_LIMIT=0 # максимальное количество запросов к дадате в сутки (0 - без ограничений)
SERVER_PORT=3000 # порт, который слушает сервр
DADATA_BASEURL='https://suggestions.dadata.ru' # базовый урл куда будут проксироваться запросы
DADATA_TOKEN=ComeAndGetYourOwnToken # ваш токен для атворизации в дадата
REDIS_OPTIONS_URL='redis://127.0.0.1:6379' # урл подключения к redis
REDIS_EXPIRE=60 # время жизни кеша запросов по-умолчанию (сек.)
REDIS_EXPIRE_INN=2592000 # вермя жизни кеша запросов по ИНН (сек.)
REDIS_EXPIRE_EMPTY=86400 # время жизни кеша пустых ответов на ИНН (для недавно зарегистрированных юр.лиц, сек.)
Пример конфигурации см. в файле .env.example
В урл подключения к redis можно передать наобор узлов кластера в виде host:port
разделитель - запятая ,
без пробелов. Например, REDIS_OPTIONS_URL='192.168.1.1:6379,192.168.1.2:6379'
.
Сервер содержит скрипт для управления в корневой папке приложения
ddproxy.sh { start | stop | restart | status }
Внимание! при запуске от root или обычного пользователя создает PID и лог файлы в разных местах,
подробнее см. в ddproxy.sh
Так же сервер может быть запущен командами
npm start
или
node server/index.js
(c)2021 aleksandr.ru