使用任務 Webhook
本指南將教您如何使用 Webhook,在 Meilisearch 完成任務時,通知指定的 URL。
必要條件
- 一個命令列主控台
- 一個自架的 Meilisearch 實例
- 一個配置為接收具有 ndjson 酬載的
POST
請求的伺服器
設定 Webhook URL
重新啟動您的 Meilisearch 實例,並將 Webhook URL 提供給 --task-webhook-URL
meilisearch --task-webhook-url https://127.0.0.1:8000
您也可以使用環境變數或在組態檔中以 MEILI_TASK_WEBHOOK_URL
定義 webhook URL。
選用:設定授權標頭
根據您的設定,您可能需要提供授權標頭。將其提供給 task-webhook-authorization-header
。
meilisearch --task-webhook-url https://127.0.0.1:8000 --task-webhook-authorization-header Bearer aSampleMasterKey
測試 webhook
一個常見的非同步操作是將文件新增或更新到索引中。以下範例會將一個測試文件新增到我們的 books
索引中
curl \
-X POST 'https://127.0.0.1:7700/indexes/books/documents' \
-H 'Content-Type: application/json' \
--data-binary '[
{
"id": 1,
"title": "Nuestra parte de noche",
"author": "Mariana Enríquez"
}
]'
當 Meilisearch 完成索引此文件時,它會向您使用 --task-webhook-url
設定的 URL 發送一個 POST
請求。請求主體將是以 ndjson 格式的一個或多個任務物件。
{"uid":4,"indexUid":"books","status":"succeeded","type":"documentAdditionOrUpdate","canceledBy":null,"details.receivedDocuments":1,"details.indexedDocuments":1,"duration":"PT0.001192S","enqueuedAt":"2022-08-04T12:28:15.159167Z","startedAt":"2022-08-04T12:28:15.161996Z","finishedAt":"2022-08-04T12:28:15.163188Z"}
如果 Meilisearch 已批次處理多個任務,它只會在批次中的所有任務都完成後觸發 webhook。在這種情況下,回應有效負載將包含所有任務,每個任務都以新行分隔。
{"uid":4,"indexUid":"books","status":"succeeded","type":"documentAdditionOrUpdate","canceledBy":null,"details.receivedDocuments":1,"details.indexedDocuments":1,"duration":"PT0.001192S","enqueuedAt":"2022-08-04T12:28:15.159167Z","startedAt":"2022-08-04T12:28:15.161996Z","finishedAt":"2022-08-04T12:28:15.163188Z"}
{"uid":5,"indexUid":"books","status":"succeeded","type":"documentAdditionOrUpdate","canceledBy":null,"details.receivedDocuments":1,"details.indexedDocuments":1,"duration":"PT0.001192S","enqueuedAt":"2022-08-04T12:28:15.159167Z","startedAt":"2022-08-04T12:28:15.161996Z","finishedAt":"2022-08-04T12:28:15.163188Z"}
{"uid":6,"indexUid":"books","status":"succeeded","type":"documentAdditionOrUpdate","canceledBy":null,"details.receivedDocuments":1,"details.indexedDocuments":1,"duration":"PT0.001192S","enqueuedAt":"2022-08-04T12:28:15.159167Z","startedAt":"2022-08-04T12:28:15.161996Z","finishedAt":"2022-08-04T12:28:15.163188Z"}