本指南介绍如何通过实例选项配置单个 Webhook,以便在 Meilisearch 完成任务时通知 URL。
如果您使用的是 Meilisearch Cloud 或需要配置多个 Webhook,请改用/webhooks API 路由

要求

  • 命令行控制台
  • 自托管 Meilisearch 实例
  • 配置为接收带有 ndjson 有效负载的 POST 请求的服务器

配置 Webhook URL

重新启动您的 Meilisearch 实例,并向 --task-webhook-URL 提供 Webhook URL
meilisearch --task-webhook-url https://:8000
您还可以使用环境变量或在配置文件中通过 MEILI_TASK_WEBHOOK_URL 定义 Webhook URL。

可选:配置授权标头

根据您的设置,您可能需要提供授权标头。将其提供给 task-webhook-authorization-header
meilisearch --task-webhook-url https://:8000 --task-webhook-authorization-header Bearer aSampleMasterKey

测试 Webhook

一个常见的异步操作是向索引添加或更新文档。以下示例将测试文档添加到我们的 books 索引中
curl \
  -X POST 'MEILISEARCH_URL/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"}
© . This site is unofficial and not affiliated with Meilisearch.