128. 独立的 Web 应用程序

spring-cloud-function-web模块具有自动配置功能,当其包含在 Spring Boot Web 应用程序中(具有 MVC 支持)时,该配置会激活。如果您只想获得简单的Starter经验,还可以使用spring-cloud-starter-function-web收集所有可选的依赖项。

启用 Web 配置后,您的应用程序将具有一个 MVC 端点(默认情况下为“ /”,但可通过spring.cloud.function.web.path配置),该端点可用于访问应用程序上下文中的功能。支持的 Content Type 是纯文本和 JSON。

MethodPathRequestResponseStatus
GET/{supplier}-来自指定供应商的物品200 OK
POST/{consumer}JSON 对象或文本镜像 Importing 并将请求主体推入 Consumer202 Accepted
POST/{consumer}JSON 数组或带有新行的文本反映 Importing 并将身体一一推入 Consumer202 Accepted
POST/{function}JSON 对象或文本应用命名函数的结果200 OK
POST/{function}JSON 数组或带有新行的文本应用命名函数的结果200 OK
GET/{function}/{item}-将项目转换为对象并返回应用函数的结果200 OK

如上表所示,端点的行为取决于方法以及传入请求数据的类型。当传入的数据是单值的并且目标函数声明为显然是单值的(即不返回集合或Flux)时,响应也将包含一个值。对于多值响应,Client 端可以通过发送“接受:文本/事件流”来请求服务器发送的事件流。如果只有一个功能(Consumer 等),则路径中的名称是可选的。可以使用管道或逗号分隔功能名称来解决(管道在 URL 路径中是合法的,但在命令行中键入有点尴尬)。

Message<?>中用 Importing 和输出声明的函数和使用者将在 Importing 消息上看到请求 Headers,并且输出消息 Headers 将转换为 HTTPHeaders。

在发布文本时,Spring Boot 2.0 和更早的版本的响应格式可能会有所不同,具体取决于内容协商(提供 Content Type 和 accptHeaders 以获得最佳效果)。