Розміщені сервери
Ці дії роблять протилежне до решти: замість того щоб викликати службу, вони розміщують її на час сценарію.
Типовий випадок застосування — перевірка webhook. Сценарій відкриває сервер, запускає предметний виклик, чекає, поки надійде вхідний виклик, і перевіряє його вміст — і все це в одному графі.
Спільний шаблон
Section titled “Спільний шаблон”Дія прослуховування має два виходи:
| Вихід | Емісія |
|---|---|
connected | Сигнал, один раз, коли сервер починає слухати |
served | Одна емісія на кожен обслужений вхідний виклик, що несе { request, response } |
Зауважте, що виходу response немає: ці блоки не роблять викликів, вони їх
отримують.
Так само, як для з’єднань, увімкніть «Повторювати на кожну отриману подію»
на блоках, під’єднаних до served, щоб обробляти всі виклики, а не лише
перший.
Сервер HTTP ──connected──► Запит HTTP «запустити webhook» └────────served──────► Assert на request.body.event потім ──► Закриття сервера HTTPДоступні пари
Section titled “Доступні пари”| Слухати | Закрити | Протокол |
|---|---|---|
| Сервер HTTP | Закриття сервера HTTP | HTTP |
| Сервер gRPC | Закриття сервера gRPC | gRPC |
| Сервер SOAP | Закриття сервера SOAP | SOAP — маршрутизація за SOAPAction або назвою операції |
| Сервер GraphQL | Закриття сервера GraphQL | GraphQL — видає SDL і налаштовані резолвери |
| Сервер OData | Закриття сервера OData | OData — застосовує $filter, $select, $orderby, $top, $skip, $count, $expand, $batch |
Ще дві дії закриття стосуються серверів родини WebSocket: Закриття сервера WebSocket і Закриття сервера Socket.IO — див. З’єднання та потоки.
Що відповідає сервер
Section titled “Що відповідає сервер”Відповідь — та, що налаштована на самому запиті, яким керує дія: статус, заголовки й тіло для HTTP, імітовані методи для gRPC, операції для SOAP, резолвери для GraphQL, дані для OData.
{{variables}} обчислюються в момент відповіді: зміна змінної, поки сервер
слухає, змінює наступну відповідь. Див. Режим сервера.
Спільне використання порту
Section titled “Спільне використання порту”Restorm відкриває лише один сокет на порт і маршрутизує залежно від
природи виклику. Тож сервер симуляції HTTP і сервер WebSocket можуть слухати
разом на :8080.
Порт звільняється, коли зупиняється його останній маршрут.