支援的協定
在 Restorm 裡,協定並不是 HTTP 的簡化版:每一種協定都有自己的編輯器、自己的執行 方式,以及自己的回應呈現。因此同一個專案裡可以並排放著一個 REST 呼叫、一個 MQTT 訂閱,以及一個 Kafka 消費者。
所有執行用的協定都包含在 Community 版中,而且沒有任何限制。
| 協定 | 用途 | 伺服器模式 |
|---|---|---|
| HTTP | REST 以及任何 HTTP 呼叫 | ✔ |
| GraphQL | 查詢、變更、訂閱 | ✔ |
| gRPC | Unary 與串流呼叫、gRPC-Web、Connect | ✔ |
| SOAP | WSDL 服務、XML 信封 | ✔ |
| OData | 實體集、查詢選項、$batch | ✔ |
| JSON-RPC | JSON-RPC 2.0,單一呼叫或批次 | — |
| tRPC | query 與 mutation 程序 | — |
串流與訊息傳遞
Section titled “串流與訊息傳遞”| 協定 | 用途 | 伺服器模式 |
|---|---|---|
| WebSocket | 原始的雙向連線 | ✔ |
| Socket.IO | Socket.IO 具名事件 | ✔ |
| MQTT | IoT — 主題、QoS、保留訊息、遺囑訊息 | ✔ |
| SSE | Server-Sent Events,僅接收 | — |
| STOMP | WebSocket 上的 STOMP | — |
| AMQP | RabbitMQ — 發布、消費、瀏覽 | — |
| Kafka | 產生、消費、瀏覽分割區 | — |
| Redis | Pub/Sub 與命令 | — |
所有協定的共通之處
Section titled “所有協定的共通之處”{{variables}}會在所有欄位中解析,包括各協定專屬的欄位。請參閱 行內變數。- 歷史記錄會記下每一次執行,無論使用哪一種協定。請參閱 請求歷史記錄。
- 程式碼片段會針對每一種協定,以相關的語言產生。請參閱 程式碼匯出。
- 情境能操控每一種協定,長時間維持的連線也包括在內(連線/傳送/關閉)。 請參閱動作目錄。
- 防火牆會攔截所有對外呼叫,無論使用哪一種傳輸方式。請參閱 防火牆。
不支援的項目
Section titled “不支援的項目”把界線講清楚:Restorm 不執行 Thrift(它的匯入僅供文件參考),也不支援 AMQP 1.0(只實作了 AMQP 0-9-1/RabbitMQ)與 NATS。