Skip to Content

カスタムAPIルート

デフォルトでは、Mastraは登録されたエージェントとワークフローをサーバーを通じて自動的に公開します。追加の動作を実装するには、独自のHTTPルートを定義することができます。

ルートは@mastra/core/serverから提供されるregisterApiRouteヘルパーを使用して設定します。ルートはMastraインスタンスと同じファイルに配置することもできますが、分離することで設定をより簡潔に保つことができます。

import { Mastra } from "@mastra/core"; import { registerApiRoute } from "@mastra/core/server"; export const mastra = new Mastra({ server: { apiRoutes: [ registerApiRoute("/my-custom-route", { method: "GET", handler: async (c) => { const mastra = c.get("mastra"); const agents = await mastra.getAgent("my-agent"); return c.json({ message: "Hello, world!" }); }, }), ], }, });

各ルートのハンドラーはHonoのContextを受け取ります。ハンドラー内では、Mastraインスタンスにアクセスしてエージェントやワークフローを取得したり呼び出したりすることができます。

ルート固有のミドルウェアを追加するには、registerApiRouteを呼び出す際にmiddleware配列を渡します。

registerApiRoute("/my-custom-route", { method: "GET", middleware: [ async (c, next) => { console.log(`${c.req.method} ${c.req.url}`); await next(); }, ], handler: async (c) => { return c.json({ message: "My route with custom middleware" }); }, });