nodejsでwebhook受信サーバーを作成する。
みなさんこんばんは!中野です。 今回はnodejsで基本的なwebhook受信サーバーを作ろうと思います。
サンプルコード
[server_sample.js]
var http = require("http");
http.createServer(function(req, res) {
if(req.method === 'POST') {
var data = '';
req.on('data', function(chunk) {data += chunk})
.on('end', function() {
// ここに行いたい処理を記述
console.log(data);
console.log(req.url);
res.writeHead(200, {'Content-Type': 'text/json'});
res.end("ok");
})
}
}).listen(12345);
var http = require("http");
ここでモジュールをインポートしてhttp.createServer(function(req, res) {
ここで受信していますね- 今回はpostだけ受信していますね
- console.logで受信の中身と、受信のurlをgetする方法をいれています。
- res.endでリクエストをかえします。
- 使用portはlisten(12345)なので12345番を使用しています。
実際にリクエストを送ってみる。
まず先にサーバーを起動します。
node server_sample.js
新しいターミナル(以下ターミナル2)に、実際にリクエストを送ります
curl -X POST http://localhost:12345/published -d 'body test'
[ターミナル1]
body test
/published
[ターミナル2]
ok
以上のような結果になっていれば大丈夫です。
デーモン化
webhookサーバーで運用するのであればデーモン化は必須事項です。 それではやってみましょう、まずパッケージをインストールして、そのまま起動します。
yarn add forever
yarn forever start server_sample.js
[結果]
Done in 0.21s.
確認
ps aux | grep server_sample.js
終了
killコマンドで終了します。
最後に
nodejsでwebhookサーバーの制作について紹介しました。 次回はいよいよ、strapiとの連携をしようと思います。 ありがとうございました。