Быстрая проверка структуры внешненего API сервиса
Не секрет что внешнему API сервису не льзя доверять, и ответ его нужно проверить.
Но как это сделать быстро, без ущерба по времени.
Есть сторонний API сервис с очень большим ответом и очень не надежной структурой. Структуру нужно как то проверить перед тем как начать с ней работать - это факт.
Наш сервис написан на базе фреймворка Laravel и хорошо что у него есть фасад Validator, плохо тем что когда мы попытались его натравить на большой массив, он с дулся.
По времени было все печально, весь сервис начал жутко тормозить. Он мог по минуте или двум проверять только ответ от внешнего API сервиса.
На этом этапе было принято решение сделать свой проверщик, который просто проверит структуру без изысков. По началу не было даже мечтаний что идея стоит свеч, и будет хоть какой-то эффект.
Но эффект шокировал. Вот результат теста. Тестировался на вот массиве Правило валидации для фасада Validator Правила валидации для ApiCheck
Поначалу думали, ну может где то просто ошибка.
Проверили и перепроверили, написали всякие тесты, и ошибки не нашли.
Магия!
Что то забыл, а ну да ссылку на GIT!
https://github.com/reptily/api-check
Есть сторонний API сервис с очень большим ответом и очень не надежной структурой. Структуру нужно как то проверить перед тем как начать с ней работать - это факт.
Наш сервис написан на базе фреймворка Laravel и хорошо что у него есть фасад Validator, плохо тем что когда мы попытались его натравить на большой массив, он с дулся.
По времени было все печально, весь сервис начал жутко тормозить. Он мог по минуте или двум проверять только ответ от внешнего API сервиса.
На этом этапе было принято решение сделать свой проверщик, который просто проверит структуру без изысков. По началу не было даже мечтаний что идея стоит свеч, и будет хоть какой-то эффект.
Но эффект шокировал. Вот результат теста. Тестировался на вот массиве Правило валидации для фасада Validator Правила валидации для ApiCheck
Поначалу думали, ну может где то просто ошибка.
Проверили и перепроверили, написали всякие тесты, и ошибки не нашли.
Магия!
Что то забыл, а ну да ссылку на GIT!
https://github.com/reptily/api-check