📌

StrapiのWebhook機能を活用する

2020/12/14に公開

この記事は Strapi Advent Calendar の15日目の記事です。

TL;DR

  • StrapiではWebhookの機能が備わっているため、GithubのようなWebサービスのようにWebhookを簡単に設定することができます
  • Content Typeやメディアに対して追加、変更、削除が発生した際にイベントが発生するように設定することができます

データに対して変更が起きた際に、それをトリガーにして通知処理を行ったり、集計処理を行ったりしたいことがあります。StrapiではControllerやModelの実装を自由にカスマイズすることができるので、そこに処理を入れ込むことはできますが、Webhookの機能を利用することで、イベントをトリガーにする部分を簡単に組み入れることができます。
本記事では、StrapiのWebhookの機能に関して紹介します。

動作環境

この記事では

strapi 3.3.2

を利用しています。

Webhook設定を行う

管理画面を開いて サイドバー → Settings → Global Sttings → Webhooks を選択します。

Add new webhook のボタンを選択して設定画面に遷移します。

添付の画像を参照に設定を追加します。設定完了後にTriggerのボタンを押下することで、テストを行うことができます。

これで、設定したイベントが発生するとWebhookが動作します。

リクエストボディには以下のようなJSONが格納されています。

{
  "event": "entry.create",
  "created_at": "2020-01-10T08:47:36.649Z",
  "model": "address",
  "entry": {
    "id": 1,
    "geolocation": {},
    "city": "Paris",
    "postal_code": null,
    "category": null,
    "full_name": "Paris",
    "created_at": "2020-01-10T08:47:36.264Z",
    "updated_at": "2020-01-10T08:47:36.264Z",
    "cover": null,
    "images": []
  }
}

出典: Webhooks explained and how to use them in Strapi

まとめ

Webhookの機能を利用することで、イベントに応じた処理、外部のサービスとの連携の幅が広がります。ノーコードで使える機能ですので、気軽に使用してみましょう!

リファレンス

Discussion