Dadata
Dadata.ru API интеграционная обертка для проектов ruby
Установка
Добавьте эту строку в Gemfile приложения:
gem 'dadatas'
А затем выполнить:
$ bundle
Или установите его самостоятельно как:
$ gem install dadata
Использование подсказок (Suggestion)
Добавьте в ваш код инициализацию класса с параметрами (ключи API dadata)
require 'dadatas'
dadata = Dadatas::Suggestion.new(api_key: 'YOURKEY', secret_key: 'YOURSECRETKEY')
Получение подсказок по адресам
Официальная документация: Dadata.ru
Базовый запрос:
dadata.address(query: "москва сухонская 11")
# => [true, [{:value=>"г Москва, ул Сухонская, д 11, кв 8", ... }]]
Сложный запрос:
Сложный запрос может включать в себя такие параметры как:
- query(string) - Текст запроса
- count(integer) - Количество результатов (максимум — 20)
- language(string) - На каком языке вернуть результат (ru / en)
- locations(array) - Ограничение по родителю (страна, регион, район, город, улица)
- locations_geo(array) - Ограничение по радиусу окружности
- locations_boost(array) - Приоритет города при ранжировании
- from_bound(array) - Гранулярные подсказки по адресу
- to_bound(array) - Гранулярные подсказки по адресу
dadata.address(
query: "москва",
from_bound: { value: 'city' },
to_bound: { value: 'settlement' },
locations: { country_iso_code: "RU" }
)
# => [true, [{:value=>"г Москва", :unrestricted_value=>"101000, г Москва", ... }]]
Сложный поиск позволяет находить только в РФ.
dadata.address(query: "Гюмри", locations: { country_iso_code: "AM" })
# => [true, [{:value=>"Армения, Ширакская обл, г Гюмри", ... }]]
Город по IP
dadata.city_by_ip(ip: "46.226.227.20")
# => [true, {:value=>"г Краснодар", ... }]]
dadata.city_by_ip(ip: "46.226.227.20", language: "en")
# => [true, {:value=>"Russia, gorod Krasnodar", ... }]]
Подсказки по организациям
Получение подсказок по названию:
dadata.organization(query: 'ООО Рога и копыта')
# => [true, [{ value: "ПАО БАНК", ... }]]
Получение подсказок по ИНН:
dadata.organization(query: '7707083893')
# => [true, [{ value: "ПАО БАНК", ... }]]
Подсказки по адресу
Получение подсказок по ФИАС:
dadata.address_by_fias_id(fias_id: '203221a4-dde4-4954-99cb-e788df9d0ce8')
# => [true, [{ value: "г Казань, ул Кремлевская, д 1", ... }]]
Получение подсказок по строке:
dadata.address_by_str(query: 'Ижевск г, Устиновский район, Им Конструктора Калашникова М.Т. пр-кт, 17')
# => [true, [{ value: "г Ижевск, пр-кт Им Конструктора Калашникова М.Т., д 17", ... }]]
dadata.address_by_str(query: "Вашингтон", from_bound: {"value": "city"},to_bound: {"value": "settlement"}, locations: {"country": "*"} )
# => [true, [{ value: "США, Пенсильвания, г Вашингтон"", ... }]]
Подсказки по банкам
Получение подсказок по БИК, SWIFT, ИНН, 'регистрационному номеру, присвоенному Банком России'.
dadata.bank(query: '044525225')
# => [true, [{:value=>"ПАО Сбербанк", :unrestricted_value=>"ПАО Сбербанк", ... }]]
Получение подсказок по ИНН + КПП (для филиалов)
dadata.bank_branch(query: '7728168971', kpp: '667102002')
# => [true, [{:value=>"ФИЛИАЛ \"ЕКАТЕРИНБУРГСКИЙ\" АО \"АЛЬФА-БАНК\"", :unrestricted_value=>"ФИЛИАЛ \"ЕКАТЕРИНБУРГСКИЙ\" АО \"АЛЬФА-БАНК\"", ... }]]
Справочник стран мира по стандарту ISO 3166.
параметр query
может принимать значения:
- code
- alfa2
- alfa3
- name_short
- name ```ruby dadata.country(query: "Россия") => [true, [:unrestricted_value=>"Российская Федерация", :data=>{:code=>"643", :alfa2=>"RU", :alfa3=>"RUS", :name_short=>"Россия", :name=>"Российская Федерация", :req_value=>"Россия"}]]
) dadata.country(query: "Россия") => [true, [:unrestricted_value=>"Российская Федерация", :data=>{:code=>"643", :alfa2=>"RU", :alfa3=>"RUS", :name_short=>"Россия", :name=>"Российская Федерация", :req_value=>"Россия"}]]
## Использование Clean
```ruby
require 'dadatas'
dadata = Dadatas::Clean.new(api_key: 'YOURKEY', secret_key: 'YOURSECRETKEY')
Разбор адреса из строки, геокодирование
Из строки, геокодирование.
dadata.address('москва сухонская 11')
# => [true, [{:source=>"москва сухонская 11", :result=>"г Москва, ул Сухонская, д 11", ... }]]
Вклад в разработку
Bug reports and pull requests are welcome on GitHub at https://github.com/sendit-ru/dadatas.
Лицензия
The gem is available as open source under the terms of the MIT License.