Composer http in 節點 subpath 的使用方式
前言
如果還不知道什麼是 Composer 的朋友們,可以先參考這篇 DigiRunnerAPI組合與設計 。
該篇範例會用到 http in 節點與 http out 節點,如果想深入了解這兩個節點的朋友,也可以參考以下這篇:
這次小弟是來把之前在 "Composer http in/out 節點的基本介紹" 這篇挖的坑給補起來。
廢話不多說,先來看一般組合 Composer API 是如何設定的:
這樣組合出來 http in 節點的 URL 就會長這樣:
但是我們在 Composer 設定 subpath 的時候
卻因為 digiRunner 只登記了 /test/mainPath 這個 URL,就會造成打該 API 出現 404 的回應:
那我們回去重新組合 API 試試?
我們直接在 API ID 的欄位改成 mainPath/subpath,如下圖所示:
似乎 URL 能登記 /test/mainpath/subpath 了。
但你會發現按下組合的時候會出現以下錯誤:
直接不給組合!
那換成 /test/mainpath/{subpath} 試試看?
一樣不給過!
那該怎麼做呢?
接下來就來介紹如何設定才能從外部打到有設定 subpath 的 Composer API。
一、設定
1. API 管理 -> API 註冊 -> CUSTOMIZE
2. 目標 URL 欄位打上你實際要打的 API 完整路徑
重點在於最後面這個 {p},其表示為一參數,這樣你 Composer 編輯器內 http in 節點的 subpath 欄位怎麼變化,
外部都能根據 Composer 部署的 subpath,來打到該 API。
設定頁面滾輪往下滑:
3. 在 digiRunner Proxy Path 欄位打上給外部用的 API URL,一樣後面要有 {p}。
最後按下註冊即可在 API 列表上看到此 API。
二、實例
接下來我在稍早在前言的部分有組合出 API,將此 Composer API 編輯成以下樣子:
其中兩個 http in 節點分別設定為:
和
並讓回傳的的部分也分別設定:
和
Composer 編輯器設定完以後,我們就可以來測試啦。
打 /test/mainpath/subpath1:
打 /test/mainpath/subpath2:
以上皆成功打到 API。
三、結語
這個 API 設定方式好用的地方在於能直接在 Composer 編輯器內的同一個 flow 內製造許多的 API,
適用於多個 API 其內部有許多相似或需共用的流程,並且好管理。
那以上為 digiRunner V4 版本目前對 Composer 子路徑的支援,未來期許能在組合功能的部分就能一步到位直接設定好。
四、參考文獻
(1) node-red 官方
(2) 自己