Spring Cloud獨立的Web應用程序

2024-01-06 11:16 更新

spring-cloud-function-web模塊具有自動配置,當其包含在Spring Boot web應用程序中(具有MVC支持)時,將激活該配置。還有一個spring-cloud-starter-function-web來收集所有可選的依賴項,以防您只需要簡單的入門經(jīng)驗。

激活web配置后,您的應用程序?qū)⒕哂幸粋€MVC端點(默認情況下在“ /”上,但可以使用spring.cloud.function.web.path進行配置),該端點可用于訪問應用程序上下文中的功能。支持的內(nèi)容類型是純文本和JSON。

方法 路徑 請求 響應 狀態(tài)

GET

/{supplier}

-

Items from the named supplier

200 OK

POST

/{consumer}

JSON object or text

Mirrors input and pushes request body into consumer

202 Accepted

POST

/{consumer}

JSON array or text with new lines

Mirrors input and pushes body into consumer one by one

202 Accepted

POST

/{function}

JSON object or text

The result of applying the named function

200 OK

POST

/{function}

JSON array or text with new lines

The result of applying the named function

200 OK

GET

/{function}/{item}

-

Convert the item into an object and return the result of applying the function

200 OK

如上表所示,端點的行為取決于方法以及傳入請求數(shù)據(jù)的類型。當傳入的數(shù)據(jù)是單值的并且目標函數(shù)被聲明為顯然是單值的(即不返回集合或Flux)時,響應也將包含一個單值。對于多值響應,客戶端可以通過發(fā)送“接受:文本/事件流”來請求服務器發(fā)送的事件流。

如果目錄中只有一個功能(消費者等),則路徑中的名稱是可選的。可以使用管道或逗號分隔功能名稱來解決復合函數(shù)(管道在URL路徑中是合法的,但在命令行上鍵入會有點尷尬)。

如果目錄中只有一個功能,而您又想將一個特定功能映射到根路徑(例如“ /”),或者想要組合多個功能然后映射到根路徑,則可以這樣做通過提供spring.cloud.function.definition屬性,該屬性實際上由spring- = cloud-function- web模塊使用,以為存在某種類型的沖突(例如,多個功能可用等)的情況提供默認映射。

例如,

--spring.cloud.function.definition=foo|bar

上面的屬性將組成'foo'和'bar'函數(shù),并將組成的函數(shù)映射到“ /”路徑。

Message<?>中用輸入和輸出聲明的函數(shù)和使用者將在輸入消息上看到請求標頭,并且輸出消息標頭將轉(zhuǎn)換為HTTP標頭。

在發(fā)布文本時,Spring Boot 2.0和更早版本的響應格式可能會有所不同,具體取決于內(nèi)容協(xié)商(提供內(nèi)容類型和acpt標頭以獲得最佳效果)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號