11.7.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 属性中包括一个订购列表。

11.7.5.1. 允许的类型

功能的输入和输出类型可以是以下任意一种:

  • void
  • 字符串
  • byte[]
  • 原语类型及其打包程序(如 intInteger)。
  • JavaBean,如果其属性是此处列出的类型:
  • 此列表中的类型映射、列表或数组。
  • 特殊的 CloudEvents<T> 类型,其中 <T> 类型参数是此列表中的类型。

示例

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);
}