4.5. Quarkus 功能返回值
功能可以从允许类型列表中返回任何类型的实例。另外,他们可以返回 Uni<T>
类型,其中 <T>
类型参数可以是允许的类型的任何类型。
如果函数调用异步 API,因为返回的对象以与接收对象相同的格式序列化,Uni<T>
类型很有用。例如:
- 如果函数收到 HTTP 请求,则返回的对象将在 HTTP 响应的正文中发送。
-
如果函数通过二进制编码收到
CloudEvent
对象,则返回的对象将在二进制编码的CloudEvent
对象的 data 属性中发送。
以下示例显示了获取购买列表的功能:
示例命令
public class Functions { @Funq public List<Purchase> getPurchasesByName(String name) { // logic to retrieve purchases } }
- 通过 HTTP 请求调用此功能将生成 HTTP 响应,其中包含响应正文中的订购列表。
-
通过传入的
CloudEvent
对象调用此功能可生成CloudEvent
响应,并在data
属性中包括一个订购列表。
4.5.1. 允许的类型
功能的输入和输出可以是 void
、String
、或 byte[]
类型。此外,它们也可以是原语类型及其打包程序,例如 int
和 Integer
。它们也可以是以下复杂的对象:Javabeans、映射、列表、数组和特殊的 CloudEvents<T>
类型。
映射、列出、数组、CloudEvents<T>
类型的 <T>
类型参数以及 Javabeans 的属性只能是此处列出的类型。
示例
public class Functions { public List<Integer> getIds(); public Purchase[] getPurchasesByName(String name); public String getNameById(int id); public Map<String,Integer> getNameIdMapping(); public void processImage(byte[] img); }