在 MuleSoft 的代理 API 設計中,客戶端只需配置一個單一的代理 API 端點,而無需管理多個后端 API 的配置。在調用時,客戶端可以在代理 API 的請求體中傳遞所需的所有后端 API 信息。代理 API 將代表客戶端調用相應的后端 API,并將響應返回給客戶端。這些響應可以是有效的,也可能是無效的,代理 API 將確保將其準確傳遞給客戶端。

驗證層級設計

第一層驗證:CI/CS

根據 MuleSoft 的基本標準,代理 API 將啟用默認客戶端 ID 強制策略,以確保請求的來源合法。

第二層驗證:模式驗證

第二層驗證涉及有效負載的驗證,主要通過 RAML 模式來實現。模式驗證將確保以下內容:

RAML 架構示例(在代理 API 中)

將后端 API 主機列入白名單

在此設計中,代理 API 將僅保存主機和端口信息,而不會存儲任何客戶端或后端 API 的詳細信息。這種方式為系統增加了一層安全性,確保后端 API 僅能通過代理 API 訪問,而無法通過其他方式直接訪問。

標頭

基本身份驗證、承載令牌、JWT、單點登錄(SSO)、客戶端 ID、客戶端密鑰等安全標頭都可以通過代理 API 進行傳遞。這些標頭必須在請求的標頭部分發送,代理 API 會將其轉發至后端。由于這些是敏感數據,設計標準不鼓勵將標頭值替換為主體/有效負載中的內容。

請求消息示例

HTTP 協議

POST /api/callBackend HTTP/1.1
Host: localhost:8082
Authorization: Basic YW5rdXI6Ymh1eWFu
client_id: test
client_secret: test
Content-Type: application/json
Content-Length: 845

{
    "host": "backend01",
    "method": "POST",
    "endpoint": "/api/createEmployee",
    "forwarder-content-type": "application/json",
    "body": {
        "firstName": "Ankur",
        "middleName": "Jyoti",
        "lastName": "Bhuyan",
        "email": "webmail.ajb@ankuran.online",
        "gender": "Male",
        "phone": 9590951212,
        "currentAddress": {
            "isCurrentAddress": true,
            "street": "Elcetronic City",
            "city": "Bangalore",
            "district": "Bangalore",
            "pin": 56860,
            "country": "India"
        },
        "permanentAddress": {
            "isCurrentAddress": false,
            "street": "3 Rue Renee Aspe",
            "city": "Toulouse",
            "district": "Occitanie",
            "pin": 31000,
            "country": "France"
        }
    }
}

概念證明

為了驗證此代理 API 設計,已準備一個概念證明(POC)。該 POC 是通過使用 Mule4 域項目配置開發的,以下是概述。

后端 API

請在此處找到所有 POC 代碼,并獲取用于測試端點的 Postman 腳本。

作者評論

這種設計特別適合那些頻繁更改后端 API 的場景。對于在后端 API 中配置復雜的人來說,這種設計也顯得尤為有效。如果希望減少客戶端 API 的部署周期,尤其是在后端 API 變化頻繁的情況下,這種設計將非常有幫助。此外,這種代理 API 設計可以有效降低開發和部署時間,減輕開發人員的工作量。

需要注意的是,此設計僅在主體類型為 application/jsonapplication/xmltext/plainapplication/x-www-form-urlencoded 時有效,而不適用于多部分/表單數據(如文件上傳)。然而,未來希望能夠擴展此設計以支持這一需求。

原文鏈接:Mule4 Proxy API

上一篇:

確保 REST API 合同合規性的測試方法比較

下一篇:

如何選擇合適的 Node.js REST API 框架:優缺點與示例解析
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費