1.6. 对 Kafka Bridge 的请求
指定数据格式和 HTTP 标头,以确保将有效的请求提交到 Kafka Bridge。
1.6.1. 内容类型标头 复制链接链接已复制到粘贴板!
API 请求和响应正文始终编码为 JSON。
在执行消费者操作时,如果出现非空正文,
POST
请求必须提供以下Content-Type
标头:Content-Type: application/vnd.kafka.v2+json
Content-Type: application/vnd.kafka.v2+json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在执行制作者操作时,
POST
请求必须提供Content-Type
标头,指定所生成消息的 嵌入式数据格式。这可以是json
或二进制
。Expand 嵌入式数据格式 Content-Type 标头 JSON
Content-Type: application/vnd.kafka.json.v2+json
二进制
Content-Type: application/vnd.kafka.binary.v2+json
嵌入式数据格式为每个消费者设置,如下一节中所述。
如果 POST
请求带有空的正文,则一定不能设置 Content-Type
。可以使用空正文来创建带有默认值的消费者。
1.6.2. 嵌入式数据格式 复制链接链接已复制到粘贴板!
嵌入的数据格式是通过 HTTP 传输的 Kafka 信息格式,从生成者到使用 Kafka Bridge 的消费者。支持两种嵌入式数据格式:JSON 和二进制。
在使用 /consumers/groupid
端点创建消费者时,POST
请求正文必须指定 JSON 或二进制的嵌入式数据格式。这使用 format
字段指定,例如:
{ "name": "my-consumer", "format": "binary", # ... }
{
"name": "my-consumer",
"format": "binary",
# ...
}
- 1
- 二进制嵌入式数据格式。
创建消费者时指定的嵌入式数据格式必须与它将使用的 Kafka 信息的数据格式匹配。
如果您选择指定二进制嵌入式数据格式,则后续制作者请求必须将请求正文中的二进制数据作为 Base64 编码的字符串。例如,当使用 /topics/topicname
端点发送消息时,record.value
必须以 Base64 编码:
生产者请求还必须提供一个与嵌入式数据格式对应的 Content-Type
标头,如 Content-Type: application/vnd.kafka.binary.v2+json
。
1.6.3. 消息格式 复制链接链接已复制到粘贴板!
使用 /topics
端点发送消息时,您可以在请求正文的 records
参数中输入消息有效负载。
records
参数可包含以下任何可选字段:
-
消息标头
-
消息
键
-
消息
值
-
目标
分区
到 /topic 的 POST
请求示例
- 1
- 二进制格式的标头值,编码为 Base64。
1.6.4. 接受标头 复制链接链接已复制到粘贴板!
创建消费者后,所有后续 GET 请求都必须以以下格式提供 Accept
标头:
Accept: application/vnd.kafka.EMBEDDED-DATA-FORMAT.v2+json
Accept: application/vnd.kafka.EMBEDDED-DATA-FORMAT.v2+json
EMBEDDED-DATA-FORMAT
是 json
或 二进制
。
例如,当使用嵌入式数据格式 JSON 检索订阅消费者的记录时,请包括这个 Accept 标头:
Accept: application/vnd.kafka.json.v2+json
Accept: application/vnd.kafka.json.v2+json