Задача: написать функцию (PHP), которая будет проверять целостность ответа, получаемого от апи яндекс-директа.
Методы апи Яндекс-Директа подробнейшим образом описаны:
api.yandex.ru/direct/doc/... api.yandex.ru/direct/doc/... api.yandex.ru/direct/doc/... и т.д.
Результирующие данные некоторых методов содержат большое количество параметров.
Яндекс не скрывает, что "В редких случаях параметр может иметь значение null, что говорит об ошибке получения данных на стороне API. В этом случае рекомендуется повторить вызов метода через некоторое время." (Например, см. "Примечание" на
api.yandex.ru/direct/doc/... Также в ответах API версии Live
api.yandex.ru/direct/doc/... возможны недокументируемые изменения (например, появление новых параметров в результирующих данных).
Учитывая описанное выше следует проверять ответы апи с целью проверки их целостности, а также своевременного обнаружения ошибок и отслеживания изменений.
Задача функции проверять все ли параметры, описанные в спецификации метода, возвращены в ответе надлежащим образом, и не появились ли новые параметры.
Необходимо проверять тип параметров (string, int, float, date, array, object), учитывать обязательность/необязательность параметров, "множественность" тех или иных параметров (например, метод может вернуть несколько объектов Phrases), зависимость подчиненных параметров (например, метод GetCampaignsParams (Live) возвращает параметр ClicksPerWeek только если значение другого возвращаемого параметра StrategyName='WeeklyPacketOfClicks').
Эталоны (перечень и типы параметров для каждого метода, а также зависимости между параметрами) предпочтительнее хранить в MySQL (структура таблицы на Ваше усмотрение).
Получаемый в ответе метода объект мы конвертим в многомерный массив. Поэтому проверять можно как объект, так и массив (как Вам удобнее). Т.e. на входе функция получает объект или массив из ответа апи, на выходе возвращает true, если все OK, или останавливает скрипт die(), выводя echo сообщение об ошибке, изменениях и т.д.
Оплата 300 WMR.
Прошу сообщить:
1) когда готовы взять в работу?
2) сколько времени потребуется на реализацию и когда сдадите?
3) если есть вопросы задавайте отвечу.
P.S.: Желательно, чтобы для удобства у Вас был свой доступ к апи Директа (настроить его несложно, документация у них исчерпывающая
api.yandex.ru/direct/doc/... Спасибо.