Следите за использованием ключа, пока не упёрлись в лимит
Наблюдение за заголовками квоты по ходу работы показывает приближение к лимиту задолго до того, как запрос будет отклонён.
Поле почтового индекса, которое проверяет только длину и формат символов, спокойно примет индекс, который идеально оформлен и совершенно неверен. Настоящая проверка означает убедиться, что индекс соответствует реальному месту.
Передайте индекс и двухбуквенный код страны по ISO 3166-1 alpha-2 в /v1/postcode. Для допустимой комбинации возвращается хотя бы один результат с координатами и компонентами местоположения.
GET /v1/postcode?code=SW1A 1AA&country=GB{
"status": "ok",
"postcode": "SW1A 1AA",
"country_code": "GB",
"results": [
{"lat": 51.5014, "lon": -0.1419, "components": {"city": "London", "region": "Greater London", "country": "GB"}}
]
}Если results приходит пустым, комбинация почтового индекса и страны не соответствует ни одному известному местоположению. Это сигнал отклонить значение поля формы с понятным сообщением, а не позволить выдуманному индексу проскочить и позже оказаться на транспортной этикетке.
Почтовый индекс охватывает территорию, иногда небольшую, а иногда большую, в зависимости от страны, поэтому успешная проверка подтверждает, что индекс существует, но не то, что он соответствует конкретному уличному адресу, также введённому в форме. Сочетайте проверку индекса с проверкой полного адреса через прямое геокодирование, когда нужно, чтобы совпадали и индекс, и улица.
Если отклонять индекс только потому, что он не соответствует вашим собственным ожиданиям по формату, ещё до отправки в API, вы теряете допустимые данные из-за косметической разницы. Индекс, введённый без пробела, с лишними пробелами или в разном регистре, после нормализации часто оказывается вполне допустимым почтовым индексом. Обрежьте и нормализуйте пробелы и регистр в поле перед вызовом /v1/postcode, а не отклоняйте ввод сразу из-за особенности форматирования, которую сам поиск спокойно бы допустил.
Синтаксически корректный почтовый индекс всё равно может не пройти проверку просто потому, что вместе с ним выбрана не та страна: один и тот же цифровой или буквенно-цифровой шаблон может быть допустимым индексом в системах нескольких стран. Если поиск по индексу, который клиент считает правильным, возвращает пустой результат, прежде чем считать проблемой сам индекс, проверьте, совпадает ли поле страны с тем, что клиент на самом деле имел в виду.
Выполняйте проверку, когда поле теряет фокус или при отправке формы, а не при каждом нажатии клавиши: почтовый индекс обычно вводят полностью, прежде чем его имеет смысл проверять. Так проверка ограничивается одним запросом на каждую попытку отправки, а не одним запросом на каждый введённый символ.
Один вызов проверки на одну отправку формы означает один запрос. Даже форма с большим трафиком только на проверку почтовых индексов израсходует малую долю из 2 500 бесплатных запросов в день, которые входят в каждый ключ или доступны с одного адреса без ключа.
Поймать неверный почтовый индекс до того, как он попадёт на транспортную этикетку, стоит одного дополнительного запроса. Все параметры описаны в документации по поиску почтовых индексов.