4.3. 关于调用 Quarkus 功能
您可以创建一个 Quarkus 项目来响应云事件,或创建响应简单 HTTP 请求的 Quarkus 项目。Knative 中的云事件作为 POST 请求通过 HTTP 传输,因此任一功能类型都可以侦听和响应传入的 HTTP 请求。
收到传入请求时,通过允许类型的实例调用 Quarkus 函数。
调用方法 | 实例中包含的数据类型 | 数据示例 |
---|---|---|
HTTP POST 请求 | 请求正文中的 JSON 对象 |
|
HTTP GET 请求 | 查询字符串中的数据 |
|
|
|
|
以下示例显示了接收并处理上表中列出的 customerId
和 productId
购买数据的函数:
Quarkus 功能示例
包含购买数据的对应 Purchase
JavaBean 类如下:
类示例
public class Purchase { private long customerId; private long productId; // getters and setters }
public class Purchase {
private long customerId;
private long productId;
// getters and setters
}
4.3.1. 调用示例 复制链接链接已复制到粘贴板!
以下示例代码定义了名为 withBeans
、withCloudEvent
和 withBinary
的三个功能;
示例
Functions
类的 withBeans
功能可以通过以下方法调用:
带有 JSON 正文的 HTTP POST 请求:
curl "http://localhost:8080/withBeans" -X POST \ -H "Content-Type: application/json" \ -d '{"message": "Hello there."}'
$ curl "http://localhost:8080/withBeans" -X POST \ -H "Content-Type: application/json" \ -d '{"message": "Hello there."}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有查询参数的 HTTP GET 请求:
curl "http://localhost:8080/withBeans?message=Hello%20there." -X GET
$ curl "http://localhost:8080/withBeans?message=Hello%20there." -X GET
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 二进制编码中的
CloudEvent
对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 结构化编码中的
CloudEvent
对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
与 withBeans
函数类似,可以利用 CloudEvent
对象来调用 Functions
类的 withCloudEvent
功能。但是,与 Beans
不同,CloudEvent
无法通过普通 HTTP 请求来调用。
Functions
类的 withBinary
功能可通过以下方式调用:
二进制编码中的
CloudEvent
对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 结构化编码中的
CloudEvent
对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow