Про нелогичные API

Не могу сказать, что у меня огромный опыт интеграции с внешними службами, но несколько геоинформационных сервисов и соцсетей за этот год я подключил. Мне даже начало казаться, что общедоступное API сначала хорошо продумывают и только потом открывают для всех. Я бы пребывал в счастливом неведении и дальше, но, к сожалению, сверху пришла задача подключиться к Яндекс.Деньгам.
Общая идея довольно простая: я на своей стороне формирую XML-запрос, отправляю его на указанный адрес, и получаю XML-ответ. Проблема в требованиях, которым этот XML-запрос должен удовлетворять:

  • Серия и номер паспорта должны передоваться как одно целое число(!). Возможно, сотрудники Яндекс.Денег видят от этого какую-то пользу (быстрые запросы, например), но как я по мне, это просто идеологически неверно. Но, что гораздо хуже, в России до сих пор можно встретить людей с паспортом СССР, а там в серии могут присутствовать буквы.
  • Дата выдачи паспорта разбита на три числовых поля docIssueYear, docIssueMonth и docIssueDay — год, месяц и день выдачи. Опять же оставим в стороне тот факт, что это идеологически неверно, лучше посмотрим на то, как передаются другие даты. День рождения должен передаться одним текстовым полем в формате ДД.ММ.ГГГГ, а время передачи запроса опять же текстом, но уже в формате ГГГГ-ММ-ДДTЧЧ:ММ:СС.000Z
  • Под место рождения (а там чаще всего указывается только город) отдаётся целых 100 символов, а вот под город проживания только 30. Жителям крупных городов повезло, а вот как быть тем, кому приходится указывать область или район и только потом название села?
  • Вместо названия страны надо передать код «643». Причём, если я правильно понимаю, других кодов просто нет.
  • Всего 100 символов на адрес регистрации. Большинство адресов в этот лимит попадают, но ведь живут же люди и по адресу: Ханты-Мансийский Автономный округ — Югра, Нефтеюганский р-н, пгт Пойковский, Центральная ул., д xx стр xx, кв. xx! Им-то как быть?

К чему я это всё? Не делайте так!
А к Яндекс.Деньгам мы всё же подключились.

Добавить комментарий