Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Интеграция API DaData.ru подсказки по адресам
Полная документация - API подсказки по адресам - https://dadata.ru/api/suggest/address/
Сервис DaData.ru (https://dadata.ru/suggestions/) предоставляет API поиска.
Ищет адреса по любой части адреса от региона до дома («тверская нижний 12» → «Нижегородская обл, г Нижний Новгород, ул Тверская, д 12»).
Также ищет по почтовому индексу («105568» → «г. Москва, ул Магнитогорская»).
Регистрация.
Нужно зарегистрироваться и подтвердить почту.
Регистрация - https://dadata.ru/suggestions/usage/address/#registration_popup
Подтвердить адрес электронной почты.
API начнет работать после подтверждения.
После регистрации в личном кабинете https://dadata.ru/profile/#info станут доступны API-ключ и Секретный ключ для стандартизации.
Подписка: Тариф «Бесплатный», действует бессрочно. Возможности - Бесплатно до 10 тысяч запросов в день.
API запрос.
Формат запроса.
- URL - https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address.
- Метод – post.
- Формат – json.
- Кодировка - UTF-8.
- Content-Type – application/json.
- Accept – application/json.
- Authorization - Token 1d01d91d91d91d91d9f1d91d9_____ - API-ключ из личного кабинета.
Тело запроса (формат json):
{ "query": "москва серпуховская", "count": 20 }
query - Текст запроса (обязательный)
count - Количество результатов (максимум — 20) (не обязательный).
CREATE PROCEDURE [dbo].[api_daDataAddress_request]
@parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2)
@username nvarchar(32) -- текущий пользователь.
AS
BEGIN
DECLARE @queryCount nvarchar(2) = 20 -- Количество результатов (максимум — 20)
SELECT @queryCount = ISNULL( Value2 , '20' ) FROM @parameters WHERE [Key] = 'queryCount'
IF LEN( ISNULL( @queryCount , '20' ) ) = 0
SET @queryCount = N'20'
DECLARE @queryStr nvarchar(max)
-- получение значений полей формы из @parameters
SELECT @queryStr = ISNULL( Value2 , '' ) FROM @parameters WHERE [Key] = 'queryStr'
IF LEN( ISNULL( @queryStr , '' ) ) = 0
SET @queryStr = N'москва серпуховская'
-- для тестирования
-- SET @queryStr = N'москва серпуховская' -- @queryStr = N'москва хабар' -- Текст запроса
DECLARE @apiUrl1 nvarchar(max) = '' -- Финальная строка для отправки -- ФАКТИЧЕСКИ ЭТО Url
DECLARE @jsonRequest1 nvarchar(max) = '' -- текст json-объекта
SET @apiUrl1 = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address'
-- для тестирования -- SET @jsonRequest1 = N'{ "query": "москва серпуховская", "count": 20 }'
--
SET @jsonRequest1 = N'{ "query": "'+ ISNULL( @queryStr, '' ) +'", "count": '+ TRY_CAST( ISNULL( @queryCount, '' ) AS nvarchar ) + ' }'
-------------------------------------------------------------------------------------------
-- ОТЛАДКА
insert into as_trace ( header, text, username, code , created ) values( 'apiUrl1' , @apiUrl1 , @username, 'api_daDataAddress_request' , GETDATE() )
insert into as_trace ( header, text, username, code , created ) values( '@jsonRequest1' , @jsonRequest1 , @username, 'api_daDataAddress_request' , GETDATE() )
-------------------------------------------------------------------------------------------
-- SELECT 1
select '' Msg, 1 Result
, @apiUrl1 Url
, 'application/json' ContentType -- явное указание для HEADER
-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
select 'Authorization' name
, 'Token 1d01d91d91d91d91d9f1d91d9' value
, 'header' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
union
select 'body' name
, @jsonRequest1 value -- это body
, 'json' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
END
В ответе на запрос приходит объект с массивом подсказок в поле suggestions.
Пример ответа (с сокращениями).
{
"suggestions": [
{
"value": "г Москва, ул Хабаровская",
"unrestricted_value": "г Москва, ул Хабаровская",
"data": {
"postal_code": null,
"country": "Россия",
"country_iso_code": "RU",
"federal_district": null,
"region_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
}
},
...
]
}
В результате разбора ответа процедура возвращает такой результат:
Запрос: тверская нижний 12
Результаты запроса: Регион: [Нижегородская обл][Тверская обл].
Найдено уникальных почт.индексов - 2.
Адресов - 3.
Адрес |
Индекс |
Тверская обл, Старицкий р-н, деревня Нижний Спасс, д 12 |
171372 |
Тверская обл, Старицкий р-н, деревня Нижний Спасс, д 12 стр 12 |
171372 |
г Нижний Новгород, ул Тверская, д 12 |
603105 |
Примечание. В процедуре парсинга выводится только три поля Адрес, Индекс, Регион.
В ответе сервиса – по одному адресу – более 70 полей, можно получить максимально подробную информацию по каждому адресу, включая значения всех классификаторов.
Процедура response - [dbo].[api_daDataAddress_response] - доступна по ссылке.
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта