reflector.io使ってみました

はじめに

reflector.ioというサービスを使ってみたのでメモです。
reflector.ioはSendGrid Labsが提供しているWebhookのリクエスト転送サービスです。
他に似たようなサービスを知らなかったので類似サービスとの比較とかできません。

Webhookとは

まずは、Webhookの説明から。
Wikipediaによると、Webhookというのは、WebページやWebアプリケーションがHTTP(s)によりコールバックで通知を行う動作のことを意味するようです。
通常、Web APIは、APIを利用する側がクライアントとなり、GETなりPOSTなりのリクエストを発行してサービスを利用しますが、Webhookはちょうどこれとは逆の動きとなります。つまり、予めコールバックして欲しいURLを登録しておくと、そのサービスで何らかのイベントが発生したタイミングで、そのURLにコールバック(たいてい、POSTリクエストを発行)してくれます。POSTを受け付けるサービスを用意するのは利用者自身という意味で「逆の動き」ということになります。

reflector.ioとは

reflector.ioがどういうサービスかはこちらに記載があります。
冒頭にも述べましたが、一言で表せばWebhookのリクエスト転送サービスです。
「リクエストを転送する」という意味ではHTTPプロキシに近いかもしれません。
特徴的なのが「グループ」という概念と、「パススルー」「フェイルオーバー」という2つの宛先タイプ設定を持つことです。

グループ

Webhookを作成すると、配下に複数のグループを定義することができます。グループは、宛先タイプという属性と複数の宛先を持ち、宛先タイプの設定によって、配下の宛先に対するリクエストの転送方法が変わってきます。

宛先タイプ:パススルー

受信したリクエストを複数の宛先に同時に転送します。例えば、一回のリクエストで動作の異なるWebhookを複数動作させたい場合にこちらを利用します。

宛先タイプ:フェイルオーバー

受信したリクエストを複数の宛先のうちもっとも優先度の高い宛先に転送します。耐障害性を目的とする場合に利用します。宛先が一つコケても次に優先度の高い宛先にリクエストが転送されます。

設定画面

以下がWebhookの設定画面です。複数のグループ、複数の宛先を登録することができます。尚、一つのWebhook配下に同じURLを複数登録することはできません。有効化、無効化、グループおよび宛先の管理、ログ閲覧などを行うことができます。


宛先の設定画面です。基本的には宛先URLとリトライ回数を指定するだけですが、フェイルオーバーの場合、プライオリティも設定することができます。


エラー時の動作

グループと宛先タイプの設定に応じてリクエストが転送されますが、宛先から500番台のステータスが返った場合、自動的にStateがDisabledに変わります。問題のある宛先には無駄なリクエストは送らない、ということなんでしょうね。

何に使うか?

今のところ単純な転送しか行なってくれないので、残念ながら私にとってはイマイチ使い道がありません。
転送時にパラメータを付加したり、パラメータ名を変更できたりすると、互換性のないWebhookとAPIを連携させるために利用できそうな気がします。徐々に開発を進めていくみたいなので期待したいところです。




コメント

このブログの人気の投稿

Execノードを使う

Joinノードを使う(その4)

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)