カスタム HTTP ルートの追加
v3.7.0
から App
を初期化する際に customRoutes
というルートの配列を渡すことでカスタムの HTTP ルートを簡単に追加できるようになりました。
各 CustomRoute
オブジェクトには path
、 method
、 handler
という三つのプロパティが含まれていなければなりません。 HTTP メソッドに相当する method
は文字列または文字列の配列です。
v3.13.0
からデフォルトの組み込みレシーバーである HTTPReceiver
と SocketModeReceiver
が、Express.js が提供するものと同様な動的なルートパラメーターをサポートするようになりました。これによって URL 内に含まれる値を req.params
の値として利用できるようになりました。
カスタムの HTTP ルートがローカル環境でどのポートからアクセスできるかを指定するために App
コンストラクターに installerOptions.port
というプロパティを渡すことができます。指定しない場合は、デフォルトの 3000
ポートとなります。
const { App } = require('@slack/bolt');
// デフォルトの HTTPReceiver を使って Bolt アプリを初期化します
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
customRoutes: [
{
path: '/health-check',
method: ['GET'],
handler: (req, res) => {
res.writeHead(200);
res.end(`Things are going just fine at ${req.headers.host}!`);
},
},
{
path: '/music/:genre',
method: ['GET'],
handler: (req, res) => {
res.writeHead(200);
res.end(`Oh? ${req.params.genre}? That slaps!`);
},
},
],
installerOptions: {
port: 3001,
},
});
(async () => {
await app.start();
app.logger.info('⚡️ Bolt app started');
})();