功能概述
全局服務是一種支持外部服務調用的功能,您可以通過配置服務接口來新增全局服務。在系統中,"FAQ問答"和"多輪對話"都支持直接引用全局服務,以便獲取外部服務提供的信息或功能。
注意:一旦某個全局服務被引用,需要先解除引用后才能刪除該服務。
新建服務
名稱和類型
要新建一個服務,您需要確定服務名稱和服務類型。服務類型通??梢园ㄒ韵逻x項:HTTP服務、函數計算和短信服務。
服務名稱:服務名稱是您為服務指定的名稱,您可以根據您的需求確定一個合適的服務名稱。
服務類型:
HTTP服務:HTTP 服務是一種基于 HTTP 協議提供接口服務的形式。用戶可以通過 HTTP 請求訪問這些接口,傳遞參數并獲取相應的響應結果。
函數計算:函數計算是一種事件驅動的無服務器計算服務。它以函數為單位來執行代碼,根據事件觸發自動調用函數。用戶只需編寫代碼并上傳到平臺,無需管理底層的服務器資源。
短信服務:短信服務是一種提供短信發送和接收功能的服務。它允許用戶通過 API 或控制臺發送短信消息到手機,并接收來自手機的短信回復。
調用方式設置
在服務調用方式設置中,您可以選擇同步或異步的方式,并設定調用服務的超時時間。
服務調用方式:
同步方式:當選擇同步方式時,服務調用會在發起后等待服務執行完成,并獲取到服務執行結果后再返回給調用方。這意味著調用方需要阻塞等待服務的響應,直到獲取結果后才能繼續進行后續操作。
異步方式:選擇異步方式時,服務調用會立即觸發并返回給調用方,無需等待服務執行完成。調用方可以在服務調用后立即進行其他操作,而不需要等待服務的響應。通常,在長時間運行的服務、批量處理或需要后臺處理的場景中使用異步方式更為常見。
服務超時時間:
超時時間:您可以設定服務調用的超時時間,即等待服務響應或執行完成的最長時間。如果服務在超時時間內無法返回結果,系統會返回一個超時信息給調用方。超時時間的設定應根據具體的業務需求和服務的執行時間而定。
接收參數設置
設置服務接收參數時,您可以按照以下方式進行:
參數名:為每個需要接收的參數指定一個唯一的參數名。參數名是用來標識和引用該參數的標識符。例如,參數名可以是"username"、"email"、"message"等。
備注用途:對每個參數,可以提供備注或描述,用來說明該參數的用途和作用。備注用途可以幫助其他人理解該參數的含義和正確使用方式。例如,對于參數名為"username"的參數,備注用途可以寫為"用戶的用戶名";對于參數名為"email"的參數,備注用途可以寫為"用戶的電子郵件地址"。
功能配置
在進行功能配置時,您可以設置服務接口和接口入參,以定義服務的接口類型和接收參數的方式。
服務接口:服務接口指定了客戶端與服務進行通信的方式。常見的服務接口包括GET和POST以及 Body 參數(僅在 POST 接口中使用)。
GET:使用GET接口時,客戶端通過HTTP的GET請求與服務進行通信。GET請求通常用于從服務獲取數據,參數會通過URL的查詢字符串進行傳遞。
POST:使用POST接口時,客戶端通過HTTP的POST請求與服務進行通信。POST請求通常用于向服務提交數據,參數可以通過請求體或表單字段進行傳遞。
接口入參:接口入參指定了客戶端向服務發送請求時所攜帶的參數,并規定了參數的傳遞方式。常見的接口入參包括Query和Header。
Query:使用Query方式時,參數會作為URL的查詢字符串的一部分附加在請求URL中,按照鍵值對的形式傳遞給服務。例如:
http://example.com/api?param1=value1¶m2=value2
Header:使用Header方式時,參數會作為HTTP請求的頭部信息進行傳遞??蛻舳嗽诎l送請求時,將參數添加到請求的頭部中,服務在接收請求時可以從頭部中提取參數值。
Body 參數:僅在 POST 接口中使用,通過請求體傳遞給接口。Body 參數通常用于傳遞復雜的結構化數據,如 JSON 或 XML 格式的數據。請求體中可以包含多個參數,具體的參數格式和內容取決于接口的設計。
返回參數設置
返回參數是指接口在處理完請求后,向調用方返回的結果數據。也稱為響應參數或輸出參數。
在設置服務的返回參數時,可以指定編碼格式和結果的數據類型,同時可以使用變量來引用和獲取接口返回結果中的特定字段。
以下是對返回參數的設置和使用方法:
編碼格式:確保接口返回結果使用 UTF-8 編碼,以支持處理多種字符集和特殊字符。
數據類型:指定返回結果的數據類型為 string,以確保結果以字符串的形式返回。
引用返回結果:使用變量來引用返回結果中的特定字段。例如,
${serviceOutput}
表示將整個接口返回結果賦值給result
參數,供使用該服務的模塊訪問。如果返回結果是一個 JSON 結構,可以使用${serviceOutput.name}
來獲取其中的name
字段的值。
簽名認證
在全局服務中,簽名認證是一種安全機制,用于驗證請求的合法性和身份。通過簽名認證,可以確保請求來自于合法的發送方,并防止請求被篡改或重放攻擊。
查看具體內容請參考:簽名計算使用指引