Набор инструментов для работы с Федеральной Информационной Адресной Системой (ФИАС).
Вопросы, предложения и любую другую информацию отправляйте на электронную почту.
Новости по проектам или новым материалам в Telegram-канале.
В текущей версии сервис позволяет:
- Открытое API сервиса:
- Получение информации о текущей версии ФИАС по данным ФНС.
- Получение информации о текущей версии ФИАС по данным сервиса.
- Задание актуализации / отслеживания версии ФИАС по данным ФНС.
- Отправка уведомлений о событиях сервиса в Telegram:
- Появление новой версии ФИАС.
Варианты публикации сервиса:
- Windows (на базе IIS или в качестве службы, а также через веб-сервер Kestrel)
- *.nix (на базе Kestrel + реверс-прокси через Apache/Nginx)
Для окружение разработчика необходимы:
Проекты и библиотеки в составе решения:
- Web - проекты API или других видов веб-приложений.
- YPermitin.FIASToolSet.API - API для работы с классификатором ФИАС.
- Libs - библиотеки и вспомогательные проекты.
- YPermitin.FIASToolSet.DistributionBrowser - библиотека для работы с дистрибутивами ФИАС с официального сайта (загрузка основного дистрибутива и пакетов обновления, проверка версий).
- YPermitin.FIASToolSet.Jobs - проект заданий для отслеживания обновлений ФИАС, загрузки базы и ее обновления, а также некоторых других действий для обслуживнаия.
- YPermitin.FIASToolSet.Storage.Core - базовый проект для работы с базой данных сервиса.
- YPermitin.FIASToolSet.Storage.PostgreSQL - проект для работы с базой данных сервиса в PostgreSQL.
- YPermitin.FIASToolSet.Storage.SQLServer - проект для работы с базой данных сервиса в Microsoft SQL Server.
- Tests - модульные тесты и связанные проверки.
- YPermitin.FIASToolSet.DistributionBrowser.Tests - тесты библиотеки для работы с дистрибутивами ФИАС.
- YPermitin.FIASToolSet.API.Tests - тесты приложения API для работы с классификатором ФИАС.
Установите ASP.NET Core Runtime и PostgreSQL (12+), после чего опубликуйте приложение "YPermitin.FIASToolSet.API". Подробнее о публикации ASP.NET Core приложений читайте в официальной документации.
Файл настроек приложения "appsettings.json" сервиса:
{
"DeployType": "Kestrel",
"DBMSType": "SQLServer",
"ConnectionStrings": {
"FIASToolSetService": "User ID=<user>;Password=<password>;Host=<server>;Port=5432;Database=FIASToolSetService;"
},
"Serilog": {
"MinimumLevel": "Debug"
},
"AllowedHosts": "*",
"Jobs": {
"Schedules": {
"ActualizeFIASVersionHistoryJob": "0 0/10 * * * ?",
"SendNotificationsJob": "0 0/1 * * * ?"
},
"MaxBatchSize": 10,
"ThreadPoolConcurrency": 10,
"EnableNotification": true,
"TelegramBotToken": "-",
"TelegramChatId": "-"
},
"CORS": {
"AllowedOrigins": [
]
}
}
В параметре "DeployType" устанавливается тип публикации сервиса:
- Kestrel - для использования веб-сервера Kestrel. Значение по умолчанию для *.nix-систем.
- IIS - для использования IIS. Значение по умолчанию для Windows-систем.
- WindowsService - публикация в качестве службы Windows.
Строка подключения к базе данных сервиса хранится в настройке "ConnectionStrings:FIASToolSetService". Ее формат зависит от используемой СУБД, которая устанавливается в параметре "DBMSType". Доступные значения:
- PostgreSQL (значение по умолчанию)
- SQLServer
Раздел настройки заданий "Jobs":
- "MaxBatchSize" - максимальное количество одновременно выполняемых заданий. Можно не настраивать, тогда будет использоваться значение по умолчанию - 10.
- "ThreadPoolConcurrency" - размер пула потоков планировщика заданий. Можно не настраивать, тогда будет использоваться значение по умолчанию - 10.
- "EnableNotification" - включение механизма уведомлений. Если включено, то будет выполняться регистрация событий уведомления и при старте приложения будет запущено задание отправки уведомлений.
- "TelegramBotToken" - токен Telegram-бота для отправки уведомлений о событиях работы сервиса.
- "TelegramChatId" - идентификатор чата Telegram, в котором учавствует бот и куда будут отправлены уведомления.
- "Schedules" - расписание в формате CRON для каждогого задания.
Настройка "CORS:AllowedOrigins" применяется для настройки политики CORS, чтобы разрешить определённым сайтам делать запросы со стороны клиента к API.
При необходимости переопределить порт Kestrel можно указать штатный раздел настроек:
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5100"
}
}
}
В разделе "Serilog" находится настройка логирования. Нужно установить минимальный уровень логирования событий. Для рабочего окружения рекомендую только ошибки (Error), для разработки оставить уровень отладки (Debug).
- Добавить возможность хранения классификатора ФИАС в ClickHouse.
- Реализовать API для работы с данными ФИАС.
- Сделать пример использования API в веб-приложении TinyDevTools.
Проект делается на чистом интересе и не преследует коммерческих целей.
Публикуется под лицензией MIT, поэтому Вы можете использовать его у себя полностью или частично без каких-либо гарантий и полностью под Вашу ответственность.