107. Standalone Web Applications

spring-cloud-function-web模块具有自动配置,当它包含在 Spring Boot web application(具有 MVC 支持)中时会激活。还有一个spring-cloud-starter-function-web可以收集所有可选的依赖项,以防您只需要简单的入门体验。

激活 web 配置后,您的应用程序将具有 MVC 端点(默认为“/”,但可以使用spring.cloud.function.web.path配置),可用于访问 application context 中的函数。支持的内容类型是纯文本和 JSON。

方法路径请求响应状态
得到/-来自指定供应商的物品200 好
POST/JSON object 或文本Mirrors 输入并将请求主体推送到 consumer202 已接受
POST/JSON array 或带有新 lines 的文本Mirrors 输入并将身体逐个推入 consumer202 已接受
POST/JSON object 或文本应用命名 function 的结果200 好
POST/JSON array 或带有新 lines 的文本应用命名 function 的结果200 好
得到//-将 item 转换为 object 并_return 应用 function 的结果200 好

如上面的 table 所示,端点的行为取决于方法以及传入请求数据的类型。当传入数据是单值的,并且目标 function 被声明为明显单值(i.e.不返回集合或Flux)时,响应也将包含单个 value。对于 multi-valued 响应,client 可以通过发送`Accept:text/event-stream'来请求 server-sent event 流。如果只有一个 function(consumer etc.),那么路径中的 name 是可选的。复合函数可以使用管道或逗号分隔 function 名称(管道在 URL paths 中是合法的,但在命令 line 上键入有点尴尬)。

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

在 POST 文本时,响应格式可能与 Spring Boot 2.0 和旧版本不同,具体取决于内容 negotiation(提供 content type 和 accpt headers 以获得最佳结果)。