函數API提供用於調用和管理無伺服器函數的端點。在雲端環境中,函數在Deno Subhosting上邊界運行。在自主機(Docker)環境中,函數在本機Deno執行階段中執行。
針對經過驗証的函數調用:
針對管理員端點:
呼叫函數
使用任何HTTP方法(GET、POST、PUT、PATCH、DELETE等)執行已部署的函數。伺服器保留並將呼叫者的原始方法轉送到函數執行階段。
注意:函數調用使用/functions/{slug}(沒有/api前置詞),不是/api/functions/{slug}。
路徑參數
| 參數 | 類型 | 說明 |
|---|
slug | string | 函數slug識別碼 |
請求本文
函數期望的任何JSON承載。
回應取決於函數傳回的內容:
管理員端點
這些端點需要管理員驗証。
列出所有函數
取得函數詳細資訊
建立函數
目前,InsForge只支援在Deno環境中執行的JavaScript/TypeScript函數。
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
name | string | 是 | 函數的顯示名稱 |
code | string | 是 | JavaScript/TypeScript代碼 |
slug | string | 否 | URL友善的識別碼(如果未提供,則自動產生) |
description | string | 否 | 函數的說明 |
status | string | 否 | draft或active(預設:active) |
更新函數
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
name | string | 否 | 更新的顯示名稱 |
code | string | 否 | 更新的函數代碼 |
description | string | 否 | 更新的說明 |
status | string | 否 | draft、active或error |
刪除函數
函數代碼結構
函數必須匯出一個接收Request物件並傳回Response的預設異步函數:
存取請求資料
函數狀態
| 狀態 | 說明 |
|---|
draft | 函數已儲存但未部署 |
active | 函數已部署並可以呼叫 |
error | 函數有部署錯誤 |
錯誤回應
找不到函數(404)
函數未啟用(404)
執行錯誤(502)
當函數執行階段無法到達時(自主機:本機Deno執行階段已關閉;雲端:子託管代理失敗):
函數執行階段錯誤(500)
當函數代碼擲回錯誤時:
Slug已存在(409)
偵測到危險代碼(400)