これまで何回かに分けて紹介しているブロックWebについて、今回はベンダー側の立場で考えてみたいと思います。現在、一つのベンダーですべての機能を満たすのは不可能で、複数のツールを組み合わせて一つの価値を提供します。そうした一部品になる方法について紹介します。

Web API/WebHooksによる連携

サービス同士の連携を行う際の肝になるのがWeb APIです。今新しいサービスを立ち上げるならばWeb APIを提供しない手はまずないでしょう。デファクトスタンダードとしてはRESTful、フォーマットはJSONで行われます。

また、もう一つキーになるのがWebHooksです。Web APIは基本的にプル型で、相手からのリクエストを待っています。しかし、Web API同士を連携させる場合にお互い待ちの状態では一向に通信がはじまりません。そこでデータを受け取った側が連携するサービスに対してデータをポストする必要があります。これがWebHooksです。

WebHooksはポストされる側がURLを登録します。そしてシステム側に何らかのアクションがあったタイミングでURLを呼び出します。PubSubに近いですが、ブロードキャストではなく特定のURLをコールすること、PubSubのように常時接続する必要がないのがメリットです。

有名なところとしてはSlackやGitHubが挙げられるでしょう。Slackのメッセージを別なシステムへ投稿したり、GitHubにコミットするとCIサーバに連絡がいくといった使い方がよくあります。