跳到內容

模擬 HTTP API

在資料夾上按右鍵 ▸ 新增 ▸ HTTP 伺服器

伺服器用的欄位和請求完全一樣 — 這正是它的精髓所在:方法路徑定義要監聽的 路由,狀態標頭內文定義提供出去的回應。

欄位作用
方法路由的方法
位址localhost:<port><path> — 主機是固定的
模擬狀態回傳的狀態碼,預設 200
標頭回應的標頭
內文回應的內文

一個 HTTP 伺服器項目:URL 精簡成 localhost + 連接埠 + 路徑、提供服務的方法,以及模擬回應的標頭與內文

一條路由就是方法 + 路徑的組合。比對只看完全相同的路徑,查詢字串會被忽略。任 何抵達這個連接埠卻對不上任何路由的呼叫,都會收到 404

兩條路由只有在方法相同、路徑相同而且連接埠也相同時才會衝突。所以您大可以一條路 由建一個伺服器請求,然後把它們全部啟動。

GET localhost:8080/clients → 200,客戶清單
GET localhost:8080/clients/42 → 200,一個客戶
POST localhost:8080/clients → 201,Location 標頭
GET localhost:8080/clients/999 → 404(沒有對應路由:預設回應)

標頭與內文是在每一次進來的呼叫時解析的。所以只要變數有變,一份包含 {{maintenant}}{{compteur}} 的內文就會一次跟一次不一樣。

小技巧:這讓您可以在伺服器執行期間操縱它的行為 — 改一個環境變數的值,下一次呼叫就會 收到不同的回應,完全不必重新啟動。

一個 HTTP 模擬伺服器和一個 WebSocket 或 Socket.IO 伺服器 可以監聽同一個連接埠:Restorm 會把普通請求送往 HTTP 路由,把協定 upgrade 請求送往即 時伺服器。

HTTP 伺服器動作會在情境執行的這段時間裡託管這條路由,並且每收到一個呼叫就發 出一個帶著 { request, response }served 事件。要測試 webhook 就靠這個:

HTTP 伺服器 ──connected──► HTTP 請求「觸發 webhook」
└────────served──────► 對 request.body 做 Assert
然後 ──► 關閉 HTTP 伺服器

請參閱託管伺服器