В этом документе описан ряд реальных сценариев, в которых API проверки адресов выдаёт сигналы, которые могут потребовать исправления ошибок в вашей системе. См. примеры рабочих процессов в разделе «Создание логики проверки» для получения более подробной информации.
Распространенные примеры: исправить
В этом разделе описываются типичные примеры, когда API проверки адресов выдает ответные сигналы, указывающие на низкое качество адресной информации.
Отсутствует город и почтовый индекс
В этом примере показана запись, содержащая только почтовый адрес, без города или почтового индекса.
| Адрес введен | Область |
|---|---|
| 21 45 40-я улица | США |
Вердикт по отсутствующему городу и почтовому индексу
В примере ниже подчеркиваются важные сигналы ответа.
{
"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"
}
API проверки адреса возвращает только страну (США) как CONFIRMED . Все остальные компоненты адреса возвращаются как UNCONFIRMED_BUT_PLAUSIBLE , с некоторыми важными пропусками данных, такими как местоположение и почтовый индекс.
Отсутствует номер улицы
В этом примере показан отсутствующий номер дома.
| Адрес введен | Область |
|---|---|
| Букингем-Пэлас-роуд, SW1W 9TQ, Лондон | Великобритания |
Вердикт по делу об отсутствии номера улицы
{
"inputGranularity": "PREMISE_PROXIMITY",
"validationGranularity": "ROUTE",
"geocodeGranularity": "ROUTE",
"possibleNextAction": "FIX"
}
И снова, possibleNextAction даёт первоначальное указание на то, что адрес, возможно, не может быть доставлен. Более того, значение validationGranularity равно ROUTE , что указывает на соответствие улице, но недостаточно информации для достижения объекта. Кроме того, свойство addressComplete отсутствует в вердикте, поэтому оно равно false . Дальнейший запрос к объекту address обнаруживает отсутствующий тип компонента:
"missingComponentTypes": [
"street_number"
]
Примеры пограничных случаев: исправление
В некоторых ситуациях решение о том, исправить, подтвердить или принять адрес, зависит от конкретного бизнес-сценария. Приведённые ниже примеры иллюстрируют ситуации, которые могут не полностью подпадать под категорию исправления.
Неподтвержденный номер дома
В этом сценарии API проверки адреса не может подтвердить предоставленный номер дома, но при этом указывает, что адрес полный.
| Адрес введен | Область |
|---|---|
| 84 Букингем Пэлас Роуд, SW1W 9TQ, Лондон | Великобритания |
Вердикт по неподтвержденному номеру улицы
В приведенном ниже примере подчеркнуты важные сигналы.
{
"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 . Значение Unfirmed означает, что сервис не может сопоставить номер улицы 84 со своим набором данных, а значение plausible означает, что данные компонента всё ещё могут быть действительными.
Отсутствует подпредпосылка
В этом сценарии описывается адрес, в котором отсутствует только один элемент, например, номер квартиры или отдела. В противном случае API проверки адреса может полностью проверить адрес. Как и в случае отсутствия любого компонента адреса, addressComplete имеет значение false и, следовательно, не отображается при ручной проверке вердикта.
Для иллюстрации предположим, что клиент вводит действительный адрес офиса оценщика города Сан-Франциско, но пропускает номер комнаты во входных данных.
| Адрес введен | Область |
|---|---|
| 1 Доктор Карлтон Б. Гудлетт Плейс, Сан-Франциско, Калифорния 94102 | США |
Вердикт об отсутствии подпосылки
В этом примере вердикт не отображает свойство addressComplete , поэтому он имеет false . Это означает, что по крайней мере один элемент address непредвиденный, неразрешённый или отсутствует.
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"hasInferredComponents": true,
"possibleNextAction": "CONFIRM_ADD_SUBPREMISES"
}
Запрос address показывает следующее:
"missingComponentTypes": [
"subpremise"
]
При дальнейшем запросе данные USPS предоставили код dpvConfirmation D , который также указывает на отсутствующую подпосылку.