digiRunner Composer node-red

Composer http in 節點 subpath 的使用方式

顏綸 Lun Yan 2024/01/26 17:10:33
154

前言

如果還不知道什麼是 Composer 的朋友們,可以先參考這篇 DigiRunnerAPI組合與設計 。

該篇範例會用到 http in 節點與 http out 節點,如果想深入了解這兩個節點的朋友,也可以參考以下這篇:

Composer http in/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) 自己

 

 

 

 

顏綸 Lun Yan