lotfull / rossvyaz-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

atrucks-rossvyaz-api

Определение оператора и региона по номеру телефона

Cервис, который позволяет определять по номеру телефона - оператора связи и регион.

Веб-интерфейс

Web-форма, которая принимает номер телефона, а в ответ возвращает сведения, например:

* введённый номер
* ПАО "Мобильные ТелеСистемы"
* Республика Татарстан

API-интерфейс

Один скрипт API, который принимает номер абонента в формате MSISDN (например, 79173453223).

В случае успеха, код возвращает информацию о номере (операторе мобильной связи и регионе), в случае ошибки — сигнализирует об этой ошибке. Формат JSON.

API метод для получения информации о номере:

curl -X GET http://localhost:8000/api/search?num=79856660205

Результат список новостей в формате JSON

{
    "number": "79856660205", 
    "operator": "ПАО \"Мобильные ТелеСистемы\"",
    "region": "Республика Татарстан",
}

Определение принадлежности номера

Номер проверяется на наличие в базе Россвязи (этот орган отвечает за выдачу телефонных номеров разным операторам в России):

https://rossvyaz.gov.ru/deyatelnost/resurs-numeracii/vypiska-iz-reestra-sistemy-i-plana-numeracii https://rossvyaz.gov.ru/about/otkrytoe-pravitelstvo/otkrytye-dannee/reestr-otkrytykh-dannykh

Раз в сутки происходит получение данных из базы Россвязи, их хранение и обновление.

Условия:

  • Python 3;
  • Использованы общедоступные библиотеки:

Гитхаб репозиторий: https://github.com/Lotfull/rossvyaz-api Приложение доступно по ссылке: http://185.228.233.249:8001/search Для запуска на удалённом сервере используется Docker В качестве БД используется HDF5 for Python и Pandas, так как общий объём данных не превышает 11Мб и данные хранятся в оперативной памяти с сохранением на диск в формате data.h5.

Launch

Settings

Настройки API могут быть изменены в файле .env

Запуск Django в режиме DEBUG=True если MODE=LOCAL, иначе DEBUG=False:

MODE=LOCAL

Имя хоста для удалённого запуска:

HOST_IP=localhost

Local

pip3 install -r requirements.txt
cp -n .env_example .env
python3 manage.py migrate
python3 -u manage.py runserver

Docker

docker-compose up

About


Languages

Language:Python 95.6%Language:HTML 3.3%Language:Dockerfile 1.1%