ABIv4 (метод)

Материал из post-API.ru
Перейти к: навигация, поиск

Данный метод (аббр. - Address By Index) предназначен для автозаполнения адресной информации при вводе пользователем только своего индекса (в случае, если клиент не знает свой индекс, можно использовать метод IBC (метод)). Преимущества использования этого метода для Интернет-магазина:

  • Возможность для клиента заполнить адрес доставки в три действия (ввести индекс, выбрать из списка улицу и дом).
  • Снижение ошибок ввода адреса - основные поля заполняются автоматически, в соответствии с правилами написания адресов Почты России.
  • Унифицированные записи адресов в базе данных, что облегчает формирование аналитических выборок (по практике, совпадение адресной информации, введенной разными пользователями составляет 60-65%).
  • v4: Изменено написание улиц с сокращением имен известных людей (например, 'Л.Толстого' будет отображено как 'Льва Толстого')
  • v4: Дополнение записей о домах географическими координатами


Версия API

 Версия 4.0

Вызов

 http://api.post-api.ru:3300/api/v4/abi?apikey=dev&postalcode=656056&d=1

Параметры

Ключ Обязательный Описание
postalcode О Почтовый индекс. Должен состоять из 6 цифр.
ex Н Исключить из результирующей выборки объекты адресного уровня 90 и более. "0" - 'элементы включены (значение по умолчанию), "1" - исключены.
abc Н Правило сортировки номеров домов. Если установлен в 0 (значение по умолчанию), то номера домов сортируются по порядку следования цифр (4, 10, 12, 40). Если установлен в 1, то номера домов сортируются по алфавиту (правилам сортировки строк) (10, 12, 4, 40).
streets Н Если данный флаг установлен в "1" (значение по умолчанию), то в ответе будут возвращены улицы. Если "0" - то списка улиц не будет. Если при street=0 будет установлен флаг houses (houses=1), то список домов все равно возвращен не будет
houses Н Если данный флаг установлен в "1" (значение по умолчанию), то в каждой улице будут содержаться описатели домов. Если "0" - то списка домов не будет.
geo Н Если данный флаг установлен в "1" (значение по умолчанию), то улицы и дома будут заполнены географическими координатами. При этом, если для дома отсутствуют координаты, то он будет заполнен координатами центра улицы, на которой дом расположен.
mkad Н Если данный флаг установлен в "1" (значение по умолчанию), и в ответе возвращаются адресные объекты Московской области
compact Н Если данный флаг установлен в "1" (значение по умолчанию - 0) то происходит замена длинных названий ключей на короткие, что позволяет сократить размер ответа примерно на 20%.
gzip Н Если данный флаг установлен в "1" (значение по умолчанию - 0) то происходит выдача ответа в сжатом виде (application/gzip), что позволяет сократить размер ответа примерно на 50-60%.
apikey О Ключ доступа к API.
d Н Отладочный режим.


Возвращаемое значение

С этим методом связаны следующие массивы-ответы: ABIv4_content, routev4, mkadv4.

При успешном выполнении запроса возвращается следующий массив-ответ.

 status:
   time: 0.00803946         - Время выполнения скрипта без учета сетевых задержек
   status: success          - Сформирован успешный ответ
   access: granted          - Доступ по ApiKey предоставлен
   debug: 1                 - Включен режим демонстрационного вывода данных
   v: '4.0'                 - Версия API
 source:
   method: ABI              - Вызванный метод
   abc: 0                   - Сортировать дома по правилам цифр
   postalcode: '357340'     - Почтовый индекс
   streets: 1               - Возвращать список ближайших улиц
   houses: 1                - Дополнять каждую улицу списком домов
   geo: 1                   - Добавлять гео-координаты к каждому объекту
   mkad: 1                  - Дополнять route структурой mkad
   ex: 1                    - Исключать объекты с aolevel >= 90
 content:                   - Результат работы скрипта: ABI Content
   route:
     mkad:
   streets:
 error:               
   errcode: 0               - Нет ошибки
   errmsg:                  - Текст ошибки
   errname: success         - Текстовое обозначение ошибки


При не успешном выполнении метода возвращается массив-ответ с ошибкой

 status:
   time: 0.356513002
   status: error                                         - Ошибка. Ответ не сформирован
   access: granted
   debug: 1
   v: '4.0'
 source:
   method: ABI
   abc: 0
   postalcode: '35740'
   streets: 1
   houses: 1
   geo: 1
   mkad: 1
   ex: 1                             
 content: {}
 error: 
   errcode: 150                                           - Код ошибки
   errmsg: Необходимо ввести почтовый индекс из 6 цифр    - Текст ошибки
   errname: short-postalcode                              - Текстовое обозначение ошибки


Особенности

  1. В возвращаемой структуре номера домов отсортированы по возрастанию.
  2. Координаты улиц и домов могут присутствовать не для всех объектов.
  3. При запросе метода ABI вместе с домами (houses=1), производительность метода ухудшается в десятки раз (скорость возрастает примерно с 0,2 сек до 1,9 сек). поэтому, если логика работы приложения не требует сразу же загружать номера домов для каждой улицы, рекомендуется запускать метод ABI с ключом houses=0, и затем, для отдельной улицы, вызывать SBPv4_(метод).

Обсуждение

 Форум для обсуждения метода ABI

Примеры использования

  • нет

Фрагменты кода

нет

История

  • 20.10.2013 - Метод создан