Как подделать сторонний API
Наше приложение обращается к стороннему API для выполнения нескольких задач.
У этой конечной точки есть проблема в тестовой среде, и руководство попросило нас смоделировать эту среду, поэтому, когда приложение или кто-либо пытается позвонить на www.test.com с тестовой машины, оно получает информацию с фиктивного сервера, а не с фактического www. .test.com .
Я пытался придумать разные варианты, но все имитирует, если мы создаем фиктивный объект, а затем вызываем этот фиктивный объект.
Я пытаюсь выяснить, каким образом всякий раз, когда кто-то звонит на www.test.com, он должен показывать контент с localhost.
Я не хочу редактировать файл хоста. Есть ли другой способ?
Обновлять:
Сделано приложение настраиваемым, поэтому мы можем указать, какую конечную точку должно вызывать приложение.
Я использовал Mockserver в почтальоне, чтобы смоделировать это. Но postmand не поддерживает параметр запроса
поэтому для v1 / api? q = 1 и v1 / api? q = 2 он возвращает тот же ответ
Может ли кто-нибудь помочь, как создать mockserver, который дает разные ответы для разных запросов parmaeter
Ответы
У нас есть хороший опыт работы с json-сервером. Мы нашли это действительно гибким.
Получите полный поддельный REST API с нулевым кодированием менее чем за 30 секунд (серьезно)
Создано с помощью <3 для фронтенд-разработчиков, которым нужен быстрый бэкэнд для создания прототипов и имитаций.
https://github.com/typicode/json-server
Он может работать со статическими json-файлами, где каждый идентификатор возвращает другое значение. Или вы можете использовать JavaScript для их создания. Вы можете изменить данные на основе идентификатора, предоставить случайные данные, повернуть наборы данных и т. Д.
У них также есть версия, размещенная для вас, если вы хотите протестировать через Интернет. Небольшие наборы данных бесплатны:https://my-json-server.typicode.com/
Согласно документам Postman :
Если точное совпадение не найдено, Postman вернет наиболее подходящий ответ на основе своего алгоритма.
Я протестировал фиктивный сервер, и он действительно работает с параметрами запроса, однако алгоритм указывает на значение по умолчанию, когда вы не имитируете параметр. В моем случае:
?id=1указывает 200с okстраницы
?id=2точек на 404с bad requestстраницы
?id=3и так далее не будет реализован и фиктивный сервер возвращает 200с okстраницы.
Если вы принимаете насмешку с другими пакетами, кроме Postman, я предлагаю использовать MockServer или WireMock , оба из которых поддерживают описание правил сопоставления в Java и JSON.
Например, с WireMock вы можете сопоставить HTTP-запрос по URL-адресу и строке запроса следующим образом :
Сопоставление регулярных выражений по пути и запросу
Ява:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
Можете ли вы настроить параметры env, а затем использовать их для управления API-интерфейсами вашего приложения? Вы можете использовать это, чтобы легко установить адреса API для разработки, тестирования и производства.