1.6. 对 Kafka Bridge 的请求
指定数据格式和 HTTP 标头,以确保将有效请求提交到 Kafka Bridge。
1.6.1. 内容类型标头 复制链接链接已复制到粘贴板!
API 请求和响应正文始终以 JSON 格式编码。
在执行消费者操作时,如果出现非空正文,
POST请求必须提供以下Content-Type标头:Content-Type: application/vnd.kafka.v2+json在执行制作者操作时,
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 或二进制的嵌入式数据格式。这在 格式字段中指定,例如:
{
"name": "my-consumer",
"format": "binary",
# ...
}
- 1
- 二进制嵌入式数据格式。
在创建消费者时指定的嵌入式数据格式必须与其要使用的 Kafka 消息的数据格式匹配。
如果您选择指定二进制嵌入式数据格式,则后续生产者请求必须以 Base64 编码的字符串形式提供二进制数据。例如,在使用 /topics/topicname 端点发送消息时,records.value 必须采用 Base64 编码:
{
"records": [
{
"key": "my-key",
"value": "ZWR3YXJkdGhldGhyZWVsZWdnZWRjYXQ="
},
]
}
制作者请求还必须提供一个与嵌入式数据格式对应的 Content-Type 标头,如 Content-Type: application/vnd.kafka.binary.v2+json。
1.6.3. 消息格式 复制链接链接已复制到粘贴板!
使用 /topics 端点发送消息时,您可以在请求正文中输入消息有效负载,在 records 参数中输入。
records 参数可以包含任何这些可选字段:
-
Message
headers -
Message
key -
消息
值 -
目的地
分区
到 /topics 的 POST 请求示例
curl -X POST \
http://localhost:8080/topics/my-topic \
-H 'content-type: application/vnd.kafka.json.v2+json' \
-d '{
"records": [
{
"key": "my-key",
"value": "sales-lead-0001"
"partition": 2
"headers": [
{
"key": "key1",
"value": "QXBhY2hlIEthZmthIGlzIHRoZSBib21iIQ=="
}
]
},
]
}'
- 1
- 二进制格式的标头值,并编码为 Base64。
1.6.4. 接受标头 复制链接链接已复制到粘贴板!
创建消费者后,所有后续 GET 请求都必须以以下格式提供 Accept 标头:
Accept: application/vnd.kafka.EMBEDDED-DATA-FORMAT.v2+json
EMBEDDED-DATA-FORMAT 为 json 或 二进制。
例如,在使用 JSON 的嵌入式数据格式检索已订阅的消费者的记录时,包括以下 Accept 标头:
Accept: application/vnd.kafka.json.v2+json