В моем приложении на Rails я хотел бы генерировать запросы, которые идентичны «подлинным» HTTP-запросам.
Для несколько надуманного примера, предположим, что я создавал систему, которая могла бы пакетировать входящие HTTP-запросы для дальнейшей обработки. Интерфейс для него будет примерно таким:
- Создайте новый пакетный ресурс с помощью обычной методологии CRUD (POST, получите местоположение для вновь созданного ресурса).
- Обновите пакетный ресурс, отправив ему URL-адреса, методы HTTP и данные, которые будут добавлены в коллекцию запросов, которые он должен впоследствии выполнить массовым образом.
- «Обрабатывает» пакетный ресурс, в котором он будет перебирать свою коллекцию запросов (каждый из которых может быть представлен URL-адресом, методом HTTP и набором данных) и каким-то образом указывать Rails обрабатывать эти запросы в так же, как и при поступлении обычных, «не пакетированных» запросов.
Мне кажется, что для того, чтобы сделать это функциональным, необходимо выполнить две важные работы:
Во-первых, входящие запросы нужно как-то сохранить на потом. Это может быть просто случай сохранения различных аспектов входящего запроса, таких как путь, метод, данные, заголовки и т. Д., Которые уже представлены как часть объекта входящего запроса в контроллере. Было бы неплохо, если бы существовал более «автоматический» способ обработки этого - возможно, что-то более похожее на маршалинг объектов или сериализацию - но подход «грубой силы» записи отдельных параметров также должен работать.
Во-вторых, сохраненные запросы должны иметь возможность повторно вводиться в приложение rails позднее и проходить через тот же процесс, что и обычный HTTP-запрос: маршрутизация, контроллеры, представления и т. Д. I ' Я хотел бы иметь возможность захватить ответ в строке, так же, как его увидел бы клиент HTTP, и я также хотел бы сделать это, используя внутренний механизм Rails, а не просто используя библиотеку HTTP, чтобы приложение буквально создавало новый запрос к себе.
Мысли