В этом документе описаны реальные сценарии, в которых Address Validation API предоставляет сигналы ответа, которые могут потребовать исправления в вашей системе. Примеры рабочих процессов приведены в разделе Примеры рабочих процессов статьи Как создать логику проверки.
Примеры: fix
В этом разделе описаны распространенные примеры, когда Address Validation API предоставляет сигналы ответа, указывающие на более низкое качество информации об адресе.
Не указан город и почтовый индекс.
В этом примере показана запись, содержащая только почтовый адрес, без города и почтового индекса.
| Адрес введен | Регион |
|---|---|
| 21 45 40th street | США |
Решение по отсутствующим городу и почтовому индексу
В примере ниже выделены важные сигналы из ответа.
{
"inputGranularity": "PREMISE",
"validationGranularity": "OTHER",
"geocodeGranularity": "OTHER",
"hasUnconfirmedComponents": true,
"possibleNextAction": "FIX"
}
possibleNextAction – это первый признак того, что адрес может быть недействительным. Другие выделенные компоненты также поддерживают эту возможность, поэтому вы можете запросить addressComponents, чтобы узнать больше:
{
"componentName": {
"text": "21",
"languageCode": "en"
},
"componentType": "street_number",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
},
{
"componentName": {
"text": "45 40th street",
"languageCode": "en"
},
"componentType": "route",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
},
{
"componentName": {
"text": "United States",
"languageCode": "en"
},
"componentType": "country",
"confirmationLevel": "CONFIRMED"
}
Address Validation API возвращает только страну (США) как CONFIRMED.
Все остальные компоненты адреса возвращаются как UNCONFIRMED_BUT_PLAUSIBLE, при этом некоторые важные данные, такие как населенный пункт и почтовый индекс, опускаются.
Не указан номер дома
В этом примере не указан номер дома.
| Адрес введен | Регион |
|---|---|
| Buckingham Palace Road, SW1W 9TQ London | Великобритания |
Вердикт для отсутствующего номера дома
{
"inputGranularity": "PREMISE_PROXIMITY",
"validationGranularity": "ROUTE",
"geocodeGranularity": "ROUTE",
"possibleNextAction": "FIX"
}
И снова possibleNextAction указывает на то, что адрес может быть недоступен для доставки. Кроме того, validationGranularity – ROUTE, что указывает на совпадение с улицей, но информации недостаточно, чтобы определить здание. Кроме того, в оценке отсутствует свойство addressComplete, поэтому оно равно false. Дальнейший запрос объекта address показывает отсутствующий тип компонента:
"missingComponentTypes": [
"street_number"
]
Примеры пограничных случаев: исправление
В некоторых ситуациях выбор между исправлением, подтверждением или принятием адреса зависит от конкретного бизнес-сценария. Ниже приведены примеры ситуаций, которые не подпадают под определенную категорию.
Неподтвержденный номер дома
В этом сценарии Address Validation API не может подтвердить указанный номер дома, но указывает, что адрес полный.
| Адрес введен | Регион |
|---|---|
| 84 Buckingham Palace Road, SW1W 9TQ, London | Великобритания |
Решение по неподтвержденному номеру дома
В примере ниже выделены важные сигналы.
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE_PROXIMITY",
"geocodeGranularity": "PREMISE_PROXIMITY",
"addressComplete" : true,
"hasUnconfirmedComponents": true,
"possibleNextAction": "ACCEPT"
}
Рекомендуем проверить сочетание детализации проверки только до уровня здания с неподтвержденными компонентами. Запрос свойства addressComponents показывает следующие неподтвержденные componentType:
{
"componentName": {
"text": "84",
"languageCode": "en"
},
"componentType": "street_number",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
}
В этом примере для свойства confirmation_level объекта street_number задано значение UNCONFIRMED_BUT_PLAUSIBLE. Unconfirmed означает, что сервис не может сопоставить номер дома 84 в своем наборе данных, а plausible – что данные компонента могут быть действительными.
Отсутствует номер помещения
В адресе отсутствует только номер квартиры или офиса. В противном случае Address Validation API может полностью проверить адрес. Как и в случае с любым отсутствующим компонентом адреса, addressComplete имеет значение false и поэтому не отображается при ручной проверке вердикта.
Например, клиент вводит действительный адрес офиса городского оценщика в Сан-Франциско, но не указывает номер комнаты.
| Адрес введен | Регион |
|---|---|
| 1 Doctor Carlton B Goodlett Place, San Francisco, CA 94102 | США |
Вердикт для отсутствующего номера квартиры или офиса
В этом примере в оценке не указано свойство addressComplete, поэтому оно равно false. Это означает, что по крайней мере один элемент адреса не распознан, не найден или отсутствует.
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"hasInferredComponents": true,
"possibleNextAction": "CONFIRM_ADD_SUBPREMISES"
}
Запрос address возвращает следующие данные:
"missingComponentTypes": [
"subpremise"
]
При дальнейшем запросе данные USPS предоставляют код dpvConfirmation, равный D, что также указывает на отсутствие дополнительного адреса.