browser-to-api は何をしますか?
ブラウザセッションから観測可能なHTTPトラフィックを解析し、ベストエフォートのOpenAPI 3.1仕様に変換します。browser-traceキャプチャを分析することで、ユーザーがブラウザセッションからAPIエンドポイントを発見・抽出したい場合、ネットワークトラフィックからOpenAPIドキュメントを構築したい場合、またはクライアント統合のためにサードパーティサイトのXHR/fetch通信を文書化したい場合に使用します。
動作の仕組み
- 入力: ブラウザのネットワーク通信をキャプチャした
browser-traceファイル(通常はJSON形式)。 - 処理: 各HTTPリクエスト/レスポンスを解析し、URLパターン、メソッド、ステータスコード、ヘッダー、ボディ構造を抽出。
- 出力: OpenAPI 3.1仕様に準拠したYAMLまたはJSONドキュメント。エンドポイント、パラメータ、レスポンススキーマを含む。
サポートされるプラットフォーム
- Browserbase: ブラウザオーケストレーションプラットフォーム用のスキルとして提供。
- 汎用ブラウザエージェント: 標準的な
browser-traceフォーマットに対応する任意のブラウザベースエージェント。
制限事項
- ベストエフォート: 複雑な認証フローや動的に生成されるエンドポイントは正しく抽出できない場合があります。
- サンプルデータ依存: 生成されるスキーマはキャプチャされたリクエスト/レスポンスのサンプルに基づくため、完全なAPI仕様を網羅しない可能性があります。
- エラーハンドリング: 一部の非標準的なHTTPステータスコードやカスタムヘッダーは無視されることがあります。
使用方法
# 例: CLIツールとして使用する場合
browser-to-api --input trace.json --output spec.yaml
または、コード内で直接利用:
import { convertTraceToOpenAPI } from 'browser-to-api';
const traceData = require('./trace.json');
const openApiSpec = convertTraceToOpenAPI(traceData, {
title: 'My API',
version: '1.0.0',
});
出力例
openapi: "3.1.0"
info:
title: "Extracted API"
version: "0.1.0"
paths:
/api/users:
get:
summary: "ユーザー一覧を取得"
responses:
'200':
description: "成功"
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
注意: このスキルは完全なOpenAPI仕様の代わりにはなりません。正確なAPI文書化には公式ドキュメントを参照することを推奨します。