Dadata

Gem Version

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.