Zum Hauptinhalt springen

API-Referenz

Referenz der wichtigsten Integrations-APIs von @powerduck/openapi-request. Die Tabellen fassen die Schnittstellen zusammen; die TypeScript-Deklarationen des Pakets enthalten sämtliche Überladungen und optionalen Parameter. Haupteinstiegspunkt und Protokoll-Unterpfade exportieren nicht dieselben Elemente.

Kern-API​

createClient(options?): ProtoClient​

Erstellt den auf Benutzeroberflächen ausgerichteten Client. Das Argument options ist optional.

Parameter:

NameTypBeschreibung
optionsCreateClientOptionsOptionale Konfiguration
options.writeBackWriteBackOptionsSteuert das Zusammenführen von Antworten mit der Spezifikation
options.responseToResponseOptionsSteuert die Normalisierung von Antwortobjekten

Rückgabe: ProtoClient mit den folgenden Methoden:

MethodeSignaturBeschreibung
prepare(sendOptions: SendOptions) => PreparedRequestPlant eine Anfrage und liefert Protokoll, Anzeigemodus und Stream-Typ
send(sendOptions: SendOptions) => Promise<SendResult>Führt eine Anfrage aus
sendMany(spec, targets, shared?) => Promise<SendManyResult>Stapelverarbeitung mit Ergebnissen je Ziel; Fehler verwerfen keine anderen Ergebnisse
connect(connectOptions: ManualSessionOptions) => AnyManualSessionErstellt eine ungeöffnete websocket/mcp/grpc-Sitzung; mit open() verbinden
discover(discoverOptions) => Promise<any>Ermittelt Funktionen von MCP und gRPC
writeback(spec, prepared, result, writeOptions?) => OpenApiDocumentFührt die beobachtete Antwort mit dem Dokument zusammen
dispose() => voidDerzeit ohne Wirkung; Aufrufer müssen ihre Sitzungen selbst schließen
probeStreamingResponse(input: RequestInfo | URL, init?: RequestInit) => Promise<{ ok: boolean; status: number; contentType?: string; kind: "none" | "sse" | "ndjson" | "chunked"; response: Response }>Führt eine fetch-Anfrage aus und klassifiziert die Antwort; den zurückgegebenen Antwortkörper lesen oder abbrechen

Beispiel:

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​

Erstellt den skriptfähigen Debugger für Automatisierung, Skripte und CI.

Parameter:

NameTypBeschreibung
configDebuggerOptionsOptionale Konfiguration
config.adaptersProtocolAdapter[]Benutzerdefinierte Adapterliste, die die Standardadapter ersetzt
config.extraAdaptersProtocolAdapter[]Zusätzliche Adapter zu den Standardadaptern
config.writeBackWriteBackOptionsOptionen zum Zurückschreiben
config.responseToResponseOptionsOptionen zur Antwortnormalisierung
config.writeBackTruncatedbooleanSchreibt das aus abgeschnittenen Streams abgeleitete Schema zurück (Standard: true)

Rückgabe: ProtoKit mit prepare, send, sendMany, toCollection und weiteren Methoden.

Beispiel:

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​

Erstellt eine langlebige Duplexsitzung für WebSocket, MCP oder gRPC. Die Factory führt keine Ein-/Ausgabe aus; die Verbindung wird erst mit open() hergestellt.

Parameter:

NameTypBeschreibung
options.kind"websocket" | "mcp" | "grpc"Zu verwendendes Protokoll
options.urlstringWebSocket-Verbindungs-URL
options.endpointstringMCP-Endpunkt für Streamable HTTP
options.transport"streamable-http" | "stdio"MCP-Transport; standardmäßig Streamable HTTP
options.command, options.argsstring, string[]Lokales Programm und Argumente für MCP über stdio
options.address, options.service, options.methodstringgRPC-Adresse, vollständig qualifizierter Dienstname und Methode

Für gRPC ist außerdem eine Deskriptorquelle über protoPaths oder reflection erforderlich. Protokollspezifische Optionen stehen unter Konfiguration.

Rückgabe: Eine Sitzung mit open(), send(), close(), onEvent(), waitForClose(), events und state. onEvent() gibt ein Abonnement mit unsubscribe() zurück.

Beispiel:

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​

Registry für ProtocolAdapter-Instanzen. Eine neue Registry ist leer; createDebugger() registriert die integrierten HTTP-, WebSocket-, gRPC-, MCP- und GraphQL-Adapter, sofern keine benutzerdefinierte Liste sie ersetzt. Mit register(), unregister(), get(), list(), rank() und resolve() verwalten Sie die Auswahl.

ProtoKitError​

Typisierter Fehler aus dem Debugger und den Kernfunktionen. Mit instanceof ProtoKitError unterscheiden Sie Bibliotheksfehler von unerwarteten Fehlern.

Kerntypen​

SendOptions​

Das zentrale Eingabeobjekt für prepare() und send(). Hier übergeben Sie Spezifikation, Ziel, Werte und sämtliche Einstellungen auf Anfrageebene.

FeldTypErforderlichBeschreibung
specOpenApiDocumentJaDas vollständige OpenAPI-3.2-Dokument
targetOperationTargetJaOperationskennung, siehe unten
valuesRequestValuesNeinKonkrete Werte für path/query/header/cookie/body
serverUrlstringNeinÜberschreibt spec.servers[0].url
serverVariablesRecord<string, string>NeinVariablen der Server-URL-Vorlage
variablesRecord<string, string>NeinAls {{name}} referenzierte Umgebungsvariablen
globalsRecord<string, string>NeinGlobale Variablen im Postman-Stil
localVariablesRecord<string, string>NeinLokale Variablen
collectionVariablesRecord<string, string>NeinVariablen auf Collection-Ebene
authAuthConfigNeinAuthentifizierungskonfiguration
scriptsScriptConfigNeinSkripte vor der Anfrage und Testskripte
runnerRuntimeRunOptionsNeinVollständige Durchreichung der postman-runtime-Optionen mit höchster Priorität
websocketWebSocketOptionsNeinWebSocket-Optionen
graphqlGraphQLOptionsNeinGraphQL-Optionen
mcpMcpOptionsNeinMCP-Optionen
grpcanyNeingRPC-Optionen
timeoutnumberNeinZeitlimit pro Anfrage in ms, Kurzform für runner.timeout.request

SendOptions akzeptiert außerdem diese Ausführungs- und Streaming-Einstellungen:

FeldTypBeschreibung
fetchtypeof fetchIsolierter fetch-Transport des Hosts, sofern unterstützt; HTTP/SSE verwenden weiterhin postman-runtime.
writeBackbooleanMit false bleibt patchedSpec undefiniert, während responseFragment weiterhin erzeugt wird.
signalAbortSignalBricht Ausführung oder Sampling ab; ein Teilergebnis kann weiterhin zurückgegeben werden.
maxEventsnumberMaximale Anzahl gespeicherter Streamereignisse.
maxStreamMsnumberMaximale Streaming-Sampling-Dauer in Millisekunden.
maxResponseSizenumberGrößenlimit der Antwort in Bytes.
maxBufferCharsnumberSSE-Parser-Pufferlimit vor einer Ereignisgrenze; Standard: 4194304 Zeichen.
maxEventCharsnumberLimit der gespeicherten Daten je SSE-Ereignis; Standard: 1048576 Zeichen.
inheritEventIdbooleanÜbernimmt die letzte SSE-Ereignis-ID, wenn sie fehlt; Standard: true. Für strengere Schemaableitung auf false setzen.
onEvent(event: StreamEvent) => voidEmpfängt Streamereignisse.
onConsole(log: ConsoleLog) => voidEmpfängt Konsolenausgaben von Skripten.
onAssertion(assertion: AssertionResult) => voidEmpfängt Assertion-Ergebnisse.
onResponseStart(info: ResponseStartInfo) => voidLiest frühe HTTP/SSE-Header und die streaming-Klassifizierung.
onOpen(info) => voidEmpfängt WebSocket-Verbindungsdetails: URL, Protokoll und Header.

Protokolladapter können Limits unterschiedlich auslegen. Halten Sie UI-Callbacks schlank; die Ausführungsschicht fängt geworfene Fehler ab. HTTP-Requester-Einstellungen gehören in runner.requester; dessen maxResponseSize muss, sofern angegeben, positiv sein und darf nicht null sein.

OperationTarget​

Identifiziert eine Operation. Verwenden Sie vorzugsweise entweder operationId oder method + path. Wenn beides angegeben ist, hat operationId Vorrang.

FeldTypBeschreibung
operationIdstringAlternativer Suchschlüssel mit Vorrang vor Pfad und Methode
methodstringHTTP-Methode ohne Beachtung der Groß-/Kleinschreibung. Benötigt path.
pathstringPfadvorlage, beispielsweise /users/{id}. Benötigt method.

RequestValues​

Konkrete Werte, die in die erzeugte Anfrage eingesetzt werden.

FeldTypBeschreibung
pathRecord<string, unknown>Werte für Pfadparameter
queryRecord<string, unknown>Werte für Abfrageparameter
headerRecord<string, unknown>Headerwerte
cookieRecord<string, unknown>Cookiewerte
querystringstringUnveränderte, bereits kodierte Abfragezeichenfolge für die OpenAPI-3.2-Position querystring
bodyunknownAnfragebody
contentTypestringErzwingt einen Medientyp, wenn die Operation mehrere deklariert
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​

FeldTypBeschreibung
typeAuthConfig["type"]Authentifizierungstyp
tokenstringBearer-Token für type: "bearer"
usernamestringBasic-Benutzername für type: "basic"
passwordstringBasic-Passwort für type: "basic"
keystringAPI-Schlüsselname für type: "apikey"
valuestringAPI-Schlüsselwert für type: "apikey"
in"header" | "query"API-Schlüsselposition für type: "apikey"
// 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" },
});

Erweiterte Authentifizierungstypen sind digest, oauth1, oauth2, jwt, hawk, aws4, ntlm, asap und edgegrid. Übergeben Sie deren Postman-Hilfsfelder für HTTP/SSE/GraphQL über parameters: Record<string, string | boolean | number>. Das optionale oauth2: OAuth2FlowConfig aktiviert Tokenbeschaffung und -erneuerung für OAuth 2.0. Gehen Sie nicht davon aus, dass jeder Authentifizierungshelfer mit jedem Protokoll funktioniert.

PreparedRequest​

Wird von createClient().prepare() zurückgegeben. Der Debugger liefert ein anderes Planungsergebnis: createDebugger().prepare() gibt PlanResult mit located, adapter und plan zurück.

FeldTypBeschreibung
protocolstringErmitteltes Protokoll (http, websocket, grpc, graphql, mcp)
transportstringErmittelter Transport
targetOperationTargetUrsprüngliches Ziel
operationanyErmitteltes OpenAPI-Operationsobjekt
display.modeDisplayMode"response" | "event-list" | "duplex-session"
stream.kindStreamKindStream-Klassifizierung (siehe unten)
stream.expectedbooleanOb Streaming erwartet wird
openapi.extensionsRecord<string, unknown>Ermittelte OpenAPI-Erweiterungen
warningsstring[]Warnungen während der Planung

StreamKind​

Genaue Stream-Klassifizierung: "none" | "sse" | "ndjson" | "chunked" | "websocket" | "graphql-stream" | "grpc-unary" | "grpc-server-stream" | "grpc-client-stream" | "grpc-bidi" | "mcp-http-stream" | "mcp-stdio"

OpenAPI-Hilfsfunktionen​

ExportSignaturBeschreibung
locateOperation(spec, target) => LocatedOperationErmittelt eine Operation anhand von OperationTarget
inferSchema(value) => SchemaLeitet ein JSON Schema aus einem einzelnen beobachteten Wert ab
inferSchemaFromMany(values) => SchemaLeitet ein Schema für mehrere beobachtete Werte ab
mergeSchema(a, b) => SchemaFührt zwei abgeleitete Schemas zusammen (Vereinigung oder Kombination)
sampleFromSchema(schema) => unknownErzeugt einen realistischen Beispielwert für ein Schema
toResponseObject(result, options?) => { statusCode: string; response: any }Erstellt ein OpenAPI-Antwortobjekt aus einem beobachteten Ergebnis
writeBackResponse(spec, path, method, fragment, options?) => specFührt eine beobachtete Antwort mit dem Dokument zusammen

Exportierte Typen: LocatedOperation, WriteBackOptions, ToResponseOptions.

HTTP / SSE​

Die folgenden Namen stehen am Haupteinstiegspunkt bereit. Der Unterpfad @powerduck/openapi-request/http exportiert HttpAdapter, SseParser, buildCollection, buildEnvironment, resolveServerUrl, buildRunOptions und runWithPostman. Erkennungshilfen und BUILTIN_CAPTURE_TEST importieren Sie vom Haupteinstiegspunkt.

ExportBeschreibung
HttpAdapterStandard-Protokolladapter für HTTP/HTTPS
SseParserStreaming-Parser, der einen SSE-Bytestrom in strukturierte Ereignisse umwandelt
isStreamingOperationKlassifiziert eine Operation anhand deklarierter Inhaltstypen als Streaming
isSseContentTypePrüft, ob ein Inhaltstyp SSE kennzeichnet
isStreamingContentTypePrüft, ob ein Inhaltstyp Streaming kennzeichnet
acceptHeaderForErzeugt den passenden Accept-Header für eine Operation
probeStreamingResponseFührt eine fetch-Anfrage aus und klassifiziert die Antwort; den zurückgegebenen Antwortkörper lesen oder abbrechen
BUILTIN_CAPTURE_TESTIntegriertes Postman-Testskript zum Erfassen der letzten Antwort

WebSocket​

Import über @powerduck/openapi-request/ws.

ExportBeschreibung
WebSocketAdapterProtokolladapter für WebSocket-Ziele
createWsManualSessionErstellt eine manuelle WebSocket-Duplexsitzung, auch als runWebSocketSession und wsManualSession verfügbar

GraphQL​

Import über @powerduck/openapi-request/graphql.

ExportBeschreibung
GraphQLAdapterProtokolladapter für GraphQL-Ziele
resolveGraphQLConfigErmittelt die GraphQL-Konfiguration einer Operation
runGraphQLFührt eine GraphQL-Operation aus
introspectSchemaLiest das Schema eines GraphQL-Endpunkts per Introspektion
INTROSPECTION_QUERYStandardabfrage zur GraphQL-Introspektion
generateOperationErzeugt ein Abfragedokument aus einem introspektierten GraphQL-Schema und einem Feld
generateAllOperationsErzeugt Abfragedokumente für die Felder eines introspektierten GraphQL-Schemas
writeGraphQLOperationsSchreibt erzeugte GraphQL-Operationen in die Spezifikation zurück
discoverAndWriteGraphQLSchemaErmittelt ein GraphQL-Schema und schreibt es in die Spezifikation

MCP (Model Context Protocol)​

Die meisten folgenden Einträge sind unter @powerduck/openapi-request/mcp verfügbar. Importieren Sie initializeMcpSession vom Haupteinstiegspunkt; im Unterpfad heißt die Funktion initializeSession. Der Unterpfad stellt außerdem runMcp, createMcpSessionCore und createMcpStdioConnection bereit.

ExportBeschreibung
McpAdapterProtokolladapter für MCP-Ziele
createMcpManualSessionErstellt eine manuelle MCP-Sitzung, auch als mcpManualSession verfügbar
createMcpStdioSessionErstellt eine MCP-Sitzung über stdio
runMcpManualSessionVeraltet: Verwenden Sie createMcpManualSession
resolveMcpConfigErmittelt die MCP-Konfiguration einer Operation
initializeMcpSessionInitialisiert eine MCP-Sitzung (Alias von initializeSession)
discoverMcpCapabilitiesErmittelt Funktionen eines MCP-Servers
MCP_PROTOCOL_VERSIONUnterstützte MCP-Protokollversion
generateMcpCallErzeugt einen einzelnen MCP-Tool-Aufruf
generateAllMcpCallsErzeugt alle MCP-Tool-Aufrufe
writeMcpOperationsSchreibt MCP-Operationen in die Spezifikation zurück
discoverAndWriteMcpCapabilitiesErmittelt MCP-Funktionen und schreibt sie in die Spezifikation
createHttpMcpTransportErstellt einen HTTP-Transport für MCP
createStdioMcpTransportErstellt einen stdio-Transport für MCP

gRPC​

Importieren Sie die Low-Level-Hilfsfunktionen für Erkennung, Aufrufe und Deskriptoren über @powerduck/openapi-request/grpc. GrpcProtocolAdapter, createGrpcManualSession, grpcManualSession, grpcDiscover und discoverGrpc werden vom Haupteinstiegspunkt importiert; im Unterpfad heißt die Erkennungsfunktion discover. Dort stehen auch discoverFromCatalog, describeMethod und describeFromCatalog bereit, um einen Katalog wiederzuverwenden, statt für jede Methode erneut Reflection auszuführen.

ExportBeschreibung
GrpcProtocolAdaptergRPC-Protokolladapter für OpenAPI
GrpcAdapterLow-Level-gRPC-Adapter
grpcDiscover / discoverGrpcErmittelt gRPC-Dienste und -Methoden
createGrpcManualSession / grpcManualSessionErstellt eine manuelle gRPC-Sitzung
grpcCallFührt einen einzelnen gRPC-Aufruf aus
resolveMethodErmittelt einen gRPC-Methodendeskriptor
buildMessageTemplateErstellt eine Nachrichtenvorlage aus einem Deskriptor
buildCatalogErstellt einen Katalog von Diensten und Methoden
LOADER_OPTIONSStandardoptionen des Proto-Loaders
scanProtoFilesSucht in Verzeichnissen nach Proto-Dateien
deriveIncludeDirsDetailedLeitet Include-Verzeichnisse aus Proto-Dateipfaden ab
fetchDescriptorSetRuft einen Deskriptorsatz per gRPC Reflection ab
fetchFullDescriptorSetRuft einen vollständigen Deskriptorsatz einschließlich aller Abhängigkeiten ab
listServicesListet Dienste eines Deskriptorsatzes auf
listServicesDetailedListet Dienste mit detaillierten Methodeninformationen auf
serializeDescriptorSetSerialisiert einen Deskriptorsatz in Bytes
decodeFileDescriptorProtoDekodiert ein einzelnes Dateideskriptor-Proto
decodeFileDescriptorSetDekodiert einen Dateideskriptorsatz
buildCredentialsErstellt gRPC-Anmeldedaten (synchron)
buildCredentialsAsyncErstellt gRPC-Anmeldedaten (asynchron)
buildCredentialsCheckedErstellt und validiert Anmeldedaten (synchron)
buildCredentialsCheckedAsyncErstellt und validiert Anmeldedaten (asynchron)
loadGrpcLädt das Paket @grpc/grpc-js dynamisch
isGrpcAvailablePrüft, ob gRPC-Abhängigkeiten verfügbar sind
requireCapabilityFordert eine bestimmte gRPC-Funktion an und wirft bei Nichtverfügbarkeit einen Fehler

Der Haupteinstiegspunkt exportiert die Typaliase GrpcDiscoveryResult, GrpcDiscoveredMethod und GrpcDiscoveredService. Im gRPC-Unterpfad heißen sie DiscoveryResult, DiscoveredMethod und DiscoveredService.

Fehlertypen: ReflectionProtocolError, ReflectionUnavailableError, DescriptorDecodeError, GrpcDependencyBrokenError, GrpcDependencyMissingError.

Weitere Hilfsfunktionen​

Der Haupteinstiegspunkt exportiert außerdem die OAuth-2.0-Hilfsfunktionen resolveOAuth2Token, acquireOAuth2Token, isOAuth2TokenExpired, oauth2RefreshStatuses und authFromOAuth2Token, die Kopierfunktion toCloneable, die Basisklasse UnifiedSession sowie die gRPC-Schreibfunktionen writeGrpcOperations und discoverAndWriteGrpcOperations.

Unterpfad-Exporte​

// 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";