127. 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 输入并将请求主体推送到 consumer | 202 已接受 |
POST | / | JSON array 或带有新 lines 的文本 | Mirrors 输入并将身体逐个推入 consumer | 202 已接受 |
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 以获得最佳结果)。