рони, и вот почему, свежий пример из практики, правда API у них только серверное, но и для клиента, думаю, они бы не заморачивалиь с логикой.
Как-то, тут в разделе работа взял работу. Задача - поиск автозапчастей у поставщиков. Клиент делает запрос сервер по авторизованному доступу запрашивает поставщиков. Всего их было три - два, это SOAP сервер, один возвращает просто xml. Но даже при различии имен свойств объектов, что естественно, все отдается по уму - четко разделены "служебные" данные и данные продукции. Продукция, это одноуровневый массив. Перед выдачей клиенту это все обрабатывается, компонуется, и прочие необходимые операции. В общем ничего сложного.
Неделю назад он вновь обращается ко мне с просьбой добавить еще одного поставщика. Ну в общем какая проблема, прописать доступ, особенности подключения SOAP, условия и т.п., посмотреть структуру их данных, сделать разбор их и все.
Посмотрел - для случаев когда что-то найдено, и когда нет. А не тут то было, ошибки, ошибки. Давай разбираться более детально, и оказалось, что в одном случае данные я вправе ожидать как StdObject, вдруг становятся массивов. Ладно, чтобы проще было - объект в массив. Опять ошибки. А у них так, это видимо их ноу-хау - если найдено две запчасти, то это "key" => Array => [0 => [поля описаний], 1 => [поля описаний],.. ], а если одна, то это уже так: "key" => [поля описаний]. Экономят, мать их. А в обоих случаях "key", это массив, а значит ...
Данные могут иметь любой уровень вложения, мало того, они отдают "обрубки" данных, грязь по сути, когда ничего не найдено, и такая "грязь" может встречаться среди данных на любом уровне вложения. Это так одаривает пользователей ROSSKO, это какой-то пипец, причем полный.
|