Я всего лишь описал идею. А дальше уже вопрос реализации и масштабирования.
Например, пишем абстрактный прокси, который по домену или урлу понимает, куда надо переслать данные: http://proxy.local/provider1.com/ http://proxy.local/provider2.com/ и прописываем в конфигах приложения их.
Делаем интерфейс для QA, который содержит два инпута: что на что заменить.
Можно перед выполнением запроса подготовить маппинг "доллар->зеленый", можно заставить приложение ожидать и вообще в реалтайме менять ответ от поставщика.
Прокси пишет разработчик и дает qa интерфейс.
Не нужно реализовывать "небольшую часть API поставщика", proxy может передавать данные в точности так, как передает приложение. Банально regexpом делать замену одних данных на другие в ответе поставщика. Прокси не нужно понимать, как работать с конкретным поставщиком, чтобы просто передать данные дальше.
Прокси позвоялет интерактивно менять данные (вопрос будет только в таймауте приложения): получили ответ от поставщика, дали интерфейс для QA, чтобы посомтреть на него, поменять, послать в приложение. Для приложения это будет просто тупящий запрос.
Главный минус твоего подхода - нужно модифицировать исходный код приложения. Вставлять такой код опасно, даже подразумевая, что он на прод не попадет/работать там не будет. Это потенциальная дыра.
теперь между пунктами 1 и 2, а также 3, 4 - делаем какие угодно преобразования запроса/ответа (внутри прокси provider.local, надо лишь реализовать интерфейс, который будет делать подмену значений)
допустим, в json ответе заменяем "доллар" на "зеленый": в пункте 3 пришел доллар, делаем замену на зеленый, отдаем приложению модифицированный ответ
А почему бы не реализовать прокси для api поставщика, которое будет при необходимости что-то подменять и включать это прокси в конфиге приложения для тестирования по необходимости?
то, что злоумышленник воспользуется этим: он будет обращаться к заведомо несуществующим ресурсам, что приведет к постоянному обращению к серверу (а это как минимум запрос на поиск ресурса, а может быть и еще какая-то логика)
Я всего лишь описал идею. А дальше уже вопрос реализации и масштабирования.
Например, пишем абстрактный прокси, который по домену или урлу понимает, куда надо переслать данные:
http://proxy.local/provider1.com/
http://proxy.local/provider2.com/
и прописываем в конфигах приложения их.
Делаем интерфейс для QA, который содержит два инпута: что на что заменить.
Можно перед выполнением запроса подготовить маппинг "доллар->зеленый", можно заставить приложение ожидать и вообще в реалтайме менять ответ от поставщика.
Прокси пишет разработчик и дает qa интерфейс.
Не нужно реализовывать "небольшую часть API поставщика", proxy может передавать данные в точности так, как передает приложение. Банально regexpом делать замену одних данных на другие в ответе поставщика. Прокси не нужно понимать, как работать с конкретным поставщиком, чтобы просто передать данные дальше.
Прокси позвоялет интерактивно менять данные (вопрос будет только в таймауте приложения): получили ответ от поставщика, дали интерфейс для QA, чтобы посомтреть на него, поменять, послать в приложение. Для приложения это будет просто тупящий запрос.
Главный минус твоего подхода - нужно модифицировать исходный код приложения. Вставлять такой код опасно, даже подразумевая, что он на прод не попадет/работать там не будет. Это потенциальная дыра.
есть апи поставщика http://provider.com/api который возвращает json, с которым работает приложение
есть конфиг приложения, который использует это апи:
$apiUrl = "http://provider.com/api"
Реализовываем прокси http://provider.local задачи которого
получить запрос к поставщику, как пришел от приложения
отправить его в http://provider.com/api
получить ответ от поставщика http://provider.com/api
отдать ответ приложению
меняем конфиг тестового окружения приложения на:
$apiUrl = "http://provider.local"
теперь между пунктами 1 и 2, а также 3, 4 - делаем какие угодно преобразования запроса/ответа (внутри прокси provider.local, надо лишь реализовать интерфейс, который будет делать подмену значений)
допустим, в json ответе заменяем "доллар" на "зеленый":
в пункте 3 пришел доллар, делаем замену на зеленый, отдаем приложению модифицированный ответ
А почему бы не реализовать прокси для api поставщика, которое будет при необходимости что-то подменять и включать это прокси в конфиге приложения для тестирования по необходимости?