メインコンテンツまでスキップ

API リファレンス

@powerduck/openapi-request の主要な連携 API のリファレンスです。表はインターフェースの概要を示します。オーバーロードと省略可能な引数の全定義は、パッケージの TypeScript 型宣言を参照してください。メインエントリーとプロトコル別サブパスでは、エクスポートされる内容が異なります。

コア API​

createClient(options?): ProtoClient​

UI 向けのクライアントを作成します。options 引数は省略可能です。

引数:

名前型説明
optionsCreateClientOptions省略可能な設定
options.writeBackWriteBackOptionsレスポンスを仕様へマージする方法を制御
options.responseToResponseOptionsレスポンスオブジェクトの正規化を制御

戻り値: 次のメソッドを持つ ProtoClient:

メソッドシグネチャ説明
prepare(sendOptions: SendOptions) => PreparedRequestリクエストを計画し、プロトコル、表示モード、ストリーム種別を返します
send(sendOptions: SendOptions) => Promise<SendResult>リクエストを実行します
sendMany(spec, targets, shared?) => Promise<SendManyResult>一括実行し、対象ごとの結果を返します。失敗しても他の結果は失われません
connect(connectOptions: ManualSessionOptions) => AnyManualSession未接続の websocket/mcp/grpc セッションを作成します。接続には open() を呼び出します
discover(discoverOptions) => Promise<any>MCP と gRPC の機能を検出します
writeback(spec, prepared, result, writeOptions?) => OpenApiDocument取得したレスポンスをドキュメントにマージします
dispose() => void現在は何も処理しません。セッションは呼び出し側で閉じてください
probeStreamingResponse(input: RequestInfo | URL, init?: RequestInit) => Promise<{ ok: boolean; status: number; contentType?: string; kind: "none" | "sse" | "ndjson" | "chunked"; response: Response }>fetch リクエストを実行してレスポンスを分類します。返されたレスポンス本文は読み取るかキャンセルしてください

例:

import { createClient } from "@powerduck/openapi-request";

const client = createClient({
writeBack: { overwriteExamples: true },
});

const plan = client.prepare({
spec,
target: { operationId: "getUserById" },
});

const result = await client.send({
spec,
target: { operationId: "getUserById" },
values: { path: { id: "42" } },
});

createDebugger(config?): ProtoKit​

自動化、スクリプト、CI 向けのスクリプト対応デバッガーを作成します。

引数:

名前型説明
configDebuggerOptions省略可能な設定
config.adaptersProtocolAdapter[]カスタムアダプター一覧(デフォルトを置き換えます)
config.extraAdaptersProtocolAdapter[]デフォルトに追加するアダプター
config.writeBackWriteBackOptions書き戻しオプション
config.responseToResponseOptionsレスポンス正規化オプション
config.writeBackTruncatedboolean切り詰められたストリームから推論したスキーマを書き戻します(デフォルト:true)

戻り値: prepare、send、sendMany、toCollection などを持つ ProtoKit。

例:

import { createDebugger } from "@powerduck/openapi-request";

const dbg = createDebugger({
writeBackTruncated: true,
});

const result = await dbg.send({
spec,
target: { operationId: "getUserById" },
values: { path: { id: "42" } },
serverUrl: "https://api.example.com",
});

createManualSession(options): AnyManualSession​

WebSocket、MCP、gRPC の長時間維持する双方向セッションを作成します。ファクトリーでは I/O を行わず、open() で接続します。

引数:

名前型説明
options.kind"websocket" | "mcp" | "grpc"使用するプロトコル
options.urlstringWebSocket 接続 URL
options.endpointstringMCP Streamable HTTP エンドポイント
options.transport"streamable-http" | "stdio"MCP のトランスポート。デフォルトは Streamable HTTP
options.command, options.argsstring, string[]MCP stdio 用のローカル実行ファイルと引数
options.address, options.service, options.methodstringgRPC のアドレス、完全修飾サービス名、メソッド

gRPC では、protoPaths または reflection で記述子の取得元も指定します。プロトコル別のオプションは設定を参照してください。

戻り値: open()、send()、close()、onEvent()、waitForClose()、events、state を持つセッション。onEvent() は unsubscribe() を持つ購読オブジェクトを返します。

例:

import { createManualSession } from "@powerduck/openapi-request";

const session = createManualSession({
kind: "websocket",
url: "wss://api.example.com/ws",
});

const subscription = session.onEvent((event) => {
console.log(event.kind, event.data);
});
try {
await session.open();
await session.send({ type: "message", data: "hello" });
} finally {
await session.close();
subscription.unsubscribe();
}

AdapterRegistry​

ProtocolAdapter インスタンスのレジストリーです。新規レジストリーは空ですが、createDebugger() はカスタム一覧で置き換えない限り、組み込みの HTTP、WebSocket、gRPC、MCP、GraphQL アダプターを登録します。register()、unregister()、get()、list()、rank()、resolve() で選択を管理できます。

ProtoKitError​

デバッガーやコア処理でスローされる型付きエラーです。instanceof ProtoKitError でライブラリのエラーと予期しない障害を区別できます。

コアの型​

SendOptions​

prepare() と send() の主要な入力オブジェクトです。仕様、対象、値、およびリクエスト単位の設定を渡します。

フィールド型必須説明
specOpenApiDocumentはい完全な OpenAPI 3.2 文書
targetOperationTargetはい操作の識別子。後述を参照
valuesRequestValuesいいえpath/query/header/cookie/body の具体的な値
serverUrlstringいいえspec.servers[0].url を上書き
serverVariablesRecord<string, string>いいえサーバー URL テンプレート変数
variablesRecord<string, string>いいえ{{name}} で参照する環境変数
globalsRecord<string, string>いいえPostman 形式のグローバル変数
localVariablesRecord<string, string>いいえローカル変数
collectionVariablesRecord<string, string>いいえコレクション変数
authAuthConfigいいえ認証設定
scriptsScriptConfigいいえリクエスト前とテストのスクリプト
runnerRuntimeRunOptionsいいえpostman-runtime の全オプションを渡す。最優先で適用
websocketWebSocketOptionsいいえWebSocket 固有のオプション
graphqlGraphQLOptionsいいえGraphQL 固有のオプション
mcpMcpOptionsいいえMCP 固有のオプション
grpcanyいいえgRPC 固有のオプション
timeoutnumberいいえリクエスト単位のタイムアウト(ミリ秒)。runner.timeout.request の簡略指定

SendOptions では、以下の実行・ストリーミング制御も指定できます。

フィールド型説明
fetchtypeof fetch対応する箇所で使う、ホスト提供の分離された fetch トランスポート。HTTP/SSE は引き続き postman-runtime を使用。
writeBackbooleanfalse にすると patchedSpec は未定義のままですが、responseFragment は生成します。
signalAbortSignal実行またはサンプリングを中止します。部分的な結果が返る場合があります。
maxEventsnumber保持するストリームイベントの最大数。
maxStreamMsnumberストリームのサンプリング時間上限(ミリ秒)。
maxResponseSizenumberレスポンスのバイト数上限。
maxBufferCharsnumberイベント境界までの SSE パーサーバッファー上限。既定値は 4194304 文字。
maxEventCharsnumberSSE イベントごとに保持するデータの上限。既定値は 1048576 文字。
inheritEventIdbooleanID がない場合は直前の SSE イベント ID を継承。既定値は true。厳密なスキーマ推論には false を指定。
onEvent(event: StreamEvent) => voidストリームイベントを受信。
onConsole(log: ConsoleLog) => voidスクリプトのコンソール出力を受信。
onAssertion(assertion: AssertionResult) => voidアサーション結果を受信。
onResponseStart(info: ResponseStartInfo) => void早期の HTTP/SSE ヘッダーと streaming 判定を確認。
onOpen(info) => voidWebSocket 接続の URL、プロトコル、ヘッダーを受信。

制限の解釈はプロトコルアダプターによって異なる場合があります。UI コールバックは軽量に保ってください。コールバックの例外は実行層で捕捉します。HTTP リクエスターには runner.requester を使い、その maxResponseSize を指定する場合はゼロではなく正の値にしてください。

OperationTarget​

単一の操作を識別します。operationId または method + path のどちらかを推奨します。両方あれば operationId が優先されます。

フィールド型説明
operationIdstring別の検索キー。パスとメソッドより優先
methodstringHTTP メソッド。大文字・小文字は区別しない。path が必要。
pathstring/users/{id} などのテンプレートパス。method が必要。

RequestValues​

生成するリクエストに挿入する具体的な値。

フィールド型説明
pathRecord<string, unknown>パスパラメーター値
queryRecord<string, unknown>クエリパラメーター値
headerRecord<string, unknown>ヘッダー値
cookieRecord<string, unknown>Cookie 値
querystringstring事前にエンコードした生のクエリ文字列。OpenAPI 3.2 の querystring 位置で使用
bodyunknownリクエスト本文
contentTypestring複数のメディアタイプが宣言されている場合に使用タイプを指定
const result = await client.send({
spec,
target: { operationId: "updateUser" },
values: {
path: { id: "42" },
query: { version: "2" },
header: { "X-Request-Id": "abc-123" },
body: { name: "Alice", email: "alice@example.com" },
contentType: "application/json",
},
});

AuthConfig​

フィールド型説明
typeAuthConfig["type"]認証タイプ
tokenstringtype: "bearer" 用の Bearer トークン
usernamestringtype: "basic" 用の Basic 認証ユーザー名
passwordstringtype: "basic" 用の Basic 認証パスワード
keystringtype: "apikey" 用の API キー名
valuestringtype: "apikey" 用の API キー値
in"header" | "query"type: "apikey" 用の API キー位置
// Bearer token
const result1 = await client.send({
spec,
target: { operationId: "getUser" },
auth: { type: "bearer", token: "your-jwt-token" },
});

// Basic auth
const result2 = await client.send({
spec,
target: { operationId: "getUser" },
auth: { type: "basic", username: "admin", password: "secret" },
});

// API key in header
const result3 = await client.send({
spec,
target: { operationId: "getUser" },
auth: { type: "apikey", key: "X-API-Key", value: "key-123", in: "header" },
});

高度な認証タイプには digest、oauth1、oauth2、jwt、hawk、aws4、ntlm、asap、edgegrid があります。HTTP/SSE/GraphQL 向けの Postman 認証ヘルパーフィールドは parameters: Record<string, string | boolean | number> で渡します。任意の oauth2: OAuth2FlowConfig は OAuth 2.0 のトークン取得・更新を有効にします。すべての認証ヘルパーが全プロトコルに対応するとは限りません。

PreparedRequest​

createClient().prepare() が返します。デバッガーの計画結果は異なり、createDebugger().prepare() は located、adapter、plan を含む PlanResult を返します。

フィールド型説明
protocolstring解決されたプロトコル(http、websocket、grpc、graphql、mcp)
transportstring解決されたトランスポート
targetOperationTarget元の対象
operationany解決された OpenAPI 操作オブジェクト
display.modeDisplayMode"response" | "event-list" | "duplex-session"
stream.kindStreamKindストリーム分類(後述)
stream.expectedbooleanストリーミングが想定されるかどうか
openapi.extensionsRecord<string, unknown>解決された OpenAPI 拡張
warningsstring[]計画中に発生した警告

StreamKind​

ストリーム種別の詳細な分類:"none" | "sse" | "ndjson" | "chunked" | "websocket" | "graphql-stream" | "grpc-unary" | "grpc-server-stream" | "grpc-client-stream" | "grpc-bidi" | "mcp-http-stream" | "mcp-stdio"

OpenAPI ヘルパー​

エクスポートシグネチャ説明
locateOperation(spec, target) => LocatedOperationOperationTarget から操作を解決します
inferSchema(value) => Schema単一の観測値から JSON Schema を推論します
inferSchemaFromMany(values) => Schema複数の観測値をカバーするスキーマを推論します
mergeSchema(a, b) => Schema推論された 2 つのスキーマをマージします(和集合または組み合わせ)
sampleFromSchema(schema) => unknownスキーマに対応する実用的なサンプル値を生成します
toResponseObject(result, options?) => { statusCode: string; response: any }観測結果から OpenAPI レスポンスオブジェクトを作成します
writeBackResponse(spec, path, method, fragment, options?) => spec観測したレスポンスをドキュメントにマージします

エクスポートされる型:LocatedOperation、WriteBackOptions、ToResponseOptions。

HTTP / SSE​

以下の名前はメインエントリーから利用できます。@powerduck/openapi-request/http サブパスは HttpAdapter、SseParser、buildCollection、buildEnvironment、resolveServerUrl、buildRunOptions、runWithPostman をエクスポートします。検出用ヘルパーと BUILTIN_CAPTURE_TEST はメインエントリーからインポートしてください。

エクスポート説明
HttpAdapterHTTP/HTTPS のデフォルトプロトコルアダプター
SseParserSSE バイトストリームを構造化イベントに変換するストリーミングパーサー
isStreamingOperation宣言されたコンテンツタイプから操作がストリーミングかどうかを判定します
isSseContentTypeコンテンツタイプが SSE を示すか確認します
isStreamingContentTypeコンテンツタイプがストリーミングを示すか確認します
acceptHeaderFor操作に適した Accept ヘッダーを生成します
probeStreamingResponsefetch リクエストを実行してレスポンスを分類します。返されたレスポンス本文は読み取るかキャンセルしてください
BUILTIN_CAPTURE_TEST最後のレスポンスを記録する組み込みの Postman テストスクリプト

WebSocket​

@powerduck/openapi-request/ws からインポートします。

エクスポート説明
WebSocketAdapterWebSocket 用のプロトコルアダプター
createWsManualSession双方向の手動 WebSocket セッションを作成します。別名は runWebSocketSession、wsManualSession です

GraphQL​

@powerduck/openapi-request/graphql からインポートします。

エクスポート説明
GraphQLAdapterGraphQL 用のプロトコルアダプター
resolveGraphQLConfig操作から GraphQL 設定を解決します
runGraphQLGraphQL 操作を実行します
introspectSchemaGraphQL エンドポイントのスキーマをイントロスペクションで取得します
INTROSPECTION_QUERY標準の GraphQL イントロスペクションクエリ
generateOperation取得した GraphQL スキーマとフィールドからクエリドキュメントを生成します
generateAllOperations取得した GraphQL スキーマの各フィールド向けにクエリドキュメントを生成します
writeGraphQLOperations生成した GraphQL 操作を仕様書に書き戻します
discoverAndWriteGraphQLSchemaGraphQL スキーマを検出して仕様書に書き込みます

MCP(Model Context Protocol)​

以下の大部分は @powerduck/openapi-request/mcp から利用できます。initializeMcpSession はメインエントリーからインポートしてください。サブパスでの名前は initializeSession です。サブパスは runMcp、createMcpSessionCore、createMcpStdioConnection も公開します。

エクスポート説明
McpAdapterMCP 用のプロトコルアダプター
createMcpManualSession手動 MCP セッションを作成します。別名は mcpManualSession です
createMcpStdioSessionstdio 経由の MCP セッションを作成します
runMcpManualSession非推奨です。createMcpManualSession を使用してください
resolveMcpConfig操作から MCP 設定を解決します
initializeMcpSessionMCP セッションを初期化します(initializeSession の別名)
discoverMcpCapabilitiesMCP サーバーの機能を検出します
MCP_PROTOCOL_VERSIONサポートする MCP プロトコルのバージョン
generateMcpCall単一の MCP ツール呼び出しを生成します
generateAllMcpCallsすべての MCP ツール呼び出しを生成します
writeMcpOperationsMCP 操作を仕様書に書き戻します
discoverAndWriteMcpCapabilitiesMCP の機能を検出して仕様書に書き込みます
createHttpMcpTransportMCP 用 HTTP トランスポートを作成します
createStdioMcpTransportMCP 用 stdio トランスポートを作成します

gRPC​

低水準の検出、呼び出し、記述子ヘルパーは @powerduck/openapi-request/grpc からインポートします。GrpcProtocolAdapter、createGrpcManualSession、grpcManualSession、grpcDiscover、discoverGrpc はメインエントリーからインポートしてください。サブパスの検出関数名は discover です。サブパスには discoverFromCatalog、describeMethod、describeFromCatalog もあり、メソッドごとにリフレクションを繰り返さずにカタログを再利用できます。

エクスポート説明
GrpcProtocolAdapterOpenAPI 向け gRPC プロトコルアダプター
GrpcAdapter低水準の gRPC アダプター
grpcDiscover / discoverGrpcgRPC サービスとメソッドを検出します
createGrpcManualSession / grpcManualSession手動 gRPC セッションを作成します
grpcCall単一の gRPC 呼び出しを実行します
resolveMethodgRPC メソッド記述子を解決します
buildMessageTemplate記述子からメッセージテンプレートを作成します
buildCatalogサービスとメソッドのカタログを作成します
LOADER_OPTIONSデフォルトの proto ローダー設定
scanProtoFilesディレクトリから proto ファイルを検索します
deriveIncludeDirsDetailedproto ファイルのパスからインクルードディレクトリを導出します
fetchDescriptorSetgRPC リフレクションで記述子セットを取得します
fetchFullDescriptorSetすべての依存関係を含む完全な記述子セットを取得します
listServices記述子セット内のサービスを一覧表示します
listServicesDetailedサービスとメソッドの詳細を一覧表示します
serializeDescriptorSet記述子セットをバイト列にシリアライズします
decodeFileDescriptorProto単一のファイル記述子 proto をデコードします
decodeFileDescriptorSetファイル記述子セットをデコードします
buildCredentialsgRPC 認証情報を構築します(同期)
buildCredentialsAsyncgRPC 認証情報を構築します(非同期)
buildCredentialsChecked検証付きで認証情報を構築します(同期)
buildCredentialsCheckedAsync検証付きで認証情報を構築します(非同期)
loadGrpc@grpc/grpc-js パッケージを動的に読み込みます
isGrpcAvailablegRPC の依存パッケージが利用可能か確認します
requireCapability指定した gRPC 機能を要求し、利用不可ならエラーをスローします

メインエントリーは型エイリアス GrpcDiscoveryResult、GrpcDiscoveredMethod、GrpcDiscoveredService をエクスポートします。gRPC サブパスでは、それぞれ DiscoveryResult、DiscoveredMethod、DiscoveredService という名前です。

エラー型:ReflectionProtocolError、ReflectionUnavailableError、DescriptorDecodeError、GrpcDependencyBrokenError、GrpcDependencyMissingError。

その他のユーティリティ​

メインエントリーは OAuth 2.0 ヘルパー resolveOAuth2Token、acquireOAuth2Token、isOAuth2TokenExpired、oauth2RefreshStatuses、authFromOAuth2Token、クローン用の toCloneable、基底クラス UnifiedSession、gRPC 書き戻しヘルパー writeGrpcOperations と discoverAndWriteGrpcOperations もエクスポートします。

サブパスのエクスポート​

// Main integration entry
import { createClient, createDebugger } from "@powerduck/openapi-request";

// Protocol-specific entries
import { HttpAdapter } from "@powerduck/openapi-request/http";
import { WebSocketAdapter } from "@powerduck/openapi-request/ws";
import { GrpcAdapter } from "@powerduck/openapi-request/grpc";
import { McpAdapter } from "@powerduck/openapi-request/mcp";
import { GraphQLAdapter } from "@powerduck/openapi-request/graphql";