Ana içeriğe geç

Yapılandırma

Yapılandırma üç katmana ayrılır: istemci/hata ayıklayıcı oluşturma seçenekleri, prepare() ve send() işlevlerine iletilen SendOptions nesnesi ve protokole özgü seçenekler.

Oluşturma seçenekleri​

CreateClientOptions​

createClient(options?) işlevine iletilir. Tüm alanlar isteğe bağlıdır.

AlanTürAçıklama
writeBackWriteBackOptionsYanıtların belirtime nasıl birleştirileceğini belirler
responseToResponseOptionsYanıt nesnelerinin nasıl normalleştirileceğini belirler
import { createClient } from "@powerduck/openapi-request";

const client = createClient({
writeBack: {
overwriteExamples: true,
// ... other WriteBackOptions
},
response: {
includeExamples: false,
// ... other ToResponseOptions
},
});

DebuggerOptions​

createDebugger(config?) işlevine iletilir. Tüm alanlar isteğe bağlıdır.

AlanTürAçıklama
adaptersProtocolAdapter[]Özel bağdaştırıcı listesi (varsayılanların tamamının yerini alır)
extraAdaptersProtocolAdapter[]Varsayılan kayıt defterine eklenecek bağdaştırıcılar
writeBackWriteBackOptionsGeri yazma seçenekleri
responseToResponseOptionsYanıt normalleştirme seçenekleri
writeBackTruncatedbooleanKesilen akışlardan çıkarılan şemayı geri yazar (varsayılan: true)
import { createDebugger, HttpAdapter, WebSocketAdapter } from "@powerduck/openapi-request";

// Use only HTTP and WebSocket adapters
const debugger1 = createDebugger({
adapters: [new HttpAdapter(), new WebSocketAdapter()],
});

// Add a custom adapter to the defaults
const debugger2 = createDebugger({
extraAdapters: [new MyCustomAdapter()],
writeBackTruncated: true,
});

Geri yazma ve kaydedilen örnekler​

WriteBackOptions; strategy ("merge" veya "replace", varsayılan "merge"), keepExistingDescription (varsayılan true), allowedStatusCodes (boşsa tümü), protectComponentRefs (varsayılan true), overwriteExamples (varsayılan true) ve requirePassingTests seçeneklerini destekler. Gönderim hattı, testlerin geçmesi koşulunu uygular; writeBackResponse doğrudan çağrıldığında bu koşul uygulanmaz.

ToResponseOptions; includeExamples (varsayılan true), maxExampleChars (varsayılan 4000) ve maxEventPreviewChars (varsayılan 200) seçeneklerini destekler. Gerçek yanıtlar kimlik bilgileri veya kişisel veriler içerebilir; örnek kaydetmeyi kapatın ya da yayımlamadan önce örnekleri inceleyin.

Gönderim hattı normalde değiştirilmiş bir kopyayı patchedSpec içinde döndürür; girdi belgesini değiştirmez veya dosya kaydetmez. Bu adımı atlamak için ilgili çağrıda writeBack: false ayarlayın. Oluşturma aşamasındaki writeBack nesnesi birleştirmeyi yapılandırır; çağrıya özgü boolean değeri ise geri yazmayı açar veya kapatır.

SendOptions​

prepare() ve send() için temel girdi nesnesidir. Belirtim, hedef, değerler ve istek düzeyindeki tüm yapılandırma burada iletilir.

AlanTürZorunluAçıklama
specOpenApiDocumentEvetEksiksiz OpenAPI 3.2 belgesi
targetOperationTargetEvetİşlem tanımlayıcısı (aşağıya bakın)
valuesRequestValuesHayırYol/sorgu/üstbilgi/çerez/gövde için somut değerler
serverUrlstringHayırspec.servers[0].url değerini geçersiz kılar
serverVariablesRecord<string, string>HayırSunucu URL şablonu değişkenleri
variablesRecord<string, string>Hayır{{name}} biçiminde başvurulan ortam değişkenleri
globalsRecord<string, string>HayırPostman tarzı genel değişkenler
localVariablesRecord<string, string>HayırYerel değişkenler
collectionVariablesRecord<string, string>HayırKoleksiyon düzeyindeki değişkenler
authAuthConfigHayırKimlik doğrulama yapılandırması
scriptsScriptConfigHayırİstek öncesi betikler ve test betikleri
runnerRuntimeRunOptionsHayırTüm postman-runtime seçeneklerini doğrudan iletir (en yüksek öncelik)
websocketWebSocketOptionsHayırWebSocket'e özgü seçenekler
graphqlGraphQLOptionsHayırGraphQL'e özgü seçenekler
mcpMcpOptionsHayırMCP'ye özgü seçenekler
grpcanyHayırgRPC'ye özgü seçenekler
timeoutnumberHayırİstek başına milisaniye cinsinden zaman aşımı (runner.timeout.request için kısayol)

SendOptions, şu yürütme ve akış denetimlerini de kabul eder:

AlanTürAçıklama
fetchtypeof fetchDesteklendiğinde ana uygulamanın sağladığı yalıtılmış fetch aktarımı; HTTP/SSE, postman-runtime kullanmaya devam eder.
writeBackbooleanresponseFragment üretilmeye devam ederken patchedSpec değerinin undefined kalması için false olarak ayarlayın.
signalAbortSignalYürütmeyi veya örneklemeyi iptal eder; yine de kısmi sonuç döndürülebilir.
maxEventsnumberSaklanacak en fazla akış olayı sayısı.
maxStreamMsnumberMilisaniye cinsinden en uzun akış örnekleme süresi.
maxResponseSizenumberBayt cinsinden yanıt sınırı.
maxBufferCharsnumberOlay sınırına ulaşılmadan önce SSE ayrıştırıcısının arabellek sınırı; varsayılan 4194304 karakter.
maxEventCharsnumberSSE olayı başına saklanacak veri sınırı; varsayılan 1048576 karakter.
inheritEventIdbooleanSSE olayında kimlik yoksa son olay kimliğini devralır; varsayılan true. Daha sıkı şema çıkarımı için false olarak ayarlayın.
onEvent(event: StreamEvent) => voidAkış olaylarını alır.
onConsole(log: ConsoleLog) => voidBetik konsolu çıktısını alır.
onAssertion(assertion: AssertionResult) => voidDoğrulama sonuçlarını alır.
onResponseStart(info: ResponseStartInfo) => voidİlk HTTP/SSE üstbilgilerini ve streaming sınıflandırmasını inceler.
onOpen(info) => voidWebSocket bağlantı ayrıntılarını alır: URL, protokol ve üstbilgiler.

Protokol bağdaştırıcıları sınırları farklı yorumlayabilir. Arayüz geri çağrılarını hafif tutun; geri çağrıların fırlattığı hatalar yürütme katmanında yakalanır. HTTP istek ayarları için runner.requester kullanın; maxResponseSize belirtilirse sıfır değil, pozitif olmalıdır.

OperationTarget​

Tek bir işlemi tanımlar. operationId veya method + path seçeneklerinden birini tercih edin. İkisi de verilirse operationId önceliklidir.

AlanTürAçıklama
operationIdstringAlternatif arama anahtarı; yol + yöntem çiftinden önceliklidir
methodstringBüyük/küçük harfe duyarsız HTTP yöntemi. path gerektirir.
pathstringŞablonlu yol, örneğin /users/{id}. method gerektirir.
// By operationId (recommended)
const result1 = await client.send({
spec,
target: { operationId: "getUserById" },
});

// By method + path
const result2 = await client.send({
spec,
target: { method: "GET", path: "/users/{id}" },
});

RequestValues​

Oluşturulan isteğe eklenecek somut değerler.

AlanTürAçıklama
pathRecord<string, unknown>Yol parametresi değerleri
queryRecord<string, unknown>Sorgu parametresi değerleri
headerRecord<string, unknown>Üstbilgi değerleri
cookieRecord<string, unknown>Çerez değerleri
querystringstringÖnceden kodlanmış ham sorgu dizesi (OpenAPI 3.2 querystring konumu)
bodyunknownİstek gövdesi
contentTypestringİşlem birden fazla istek medya türü bildiriyorsa belirli bir türü zorunlu kılar
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​

AlanTürAçıklama
typeAuthConfig["type"]Kimlik doğrulama türü
tokenstringBearer belirteci (type: "bearer" için)
usernamestringBasic kimlik doğrulama kullanıcı adı (type: "basic" için)
passwordstringBasic kimlik doğrulama parolası (type: "basic" için)
keystringAPI anahtarı adı (type: "apikey" için)
valuestringAPI anahtarı değeri (type: "apikey" için)
in"header" | "query"API anahtarı konumu (type: "apikey" için)
// 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" },
});

Gelişmiş kimlik doğrulama türleri digest, oauth1, oauth2, jwt, hawk, aws4, ntlm, asap ve edgegrid olarak sıralanır. HTTP/SSE/GraphQL için Postman yardımcı alanlarını parameters: Record<string, string | boolean | number> üzerinden iletin. İsteğe bağlı oauth2: OAuth2FlowConfig, OAuth 2.0 türünde belirteç alma ve yenilemeyi etkinleştirir; her kimlik doğrulama yardımcısının tüm protokollerde geçerli olduğunu varsaymayın.

ScriptConfig​

AlanTürAçıklama
collectionPreRequestScriptSource | ScriptSource[]Koleksiyon düzeyinde istek öncesi betikler
collectionTestScriptSource | ScriptSource[]Koleksiyon düzeyinde test betikleri
preRequestScriptSource | ScriptSource[]İstek düzeyinde istek öncesi betikler
testScriptSource | ScriptSource[]İstek düzeyinde test betikleri
fromSpecExtensionsbooleanBelirtimden x-postman-scripts okur (varsayılan: true)
captureLastResponsebooleanSon yanıtı sonraki isteklere sunan yerleşik yardımcıyı ekler

ScriptSource:

interface ScriptSource {
exec: string | string[]; // Script body, either a single string or array of lines
id?: string; // Optional identifier surfaced in script results
}

İçe aktarılan bir belirtime gömülü betikleri çalıştırmak istemiyorsanız scripts.fromSpecExtensions: false ayarlayın. Geçerli varsayılan değer true olduğundan bunun ileride değişeceğine güvenmeyin.

Protokole özgü seçenekler​

HTTP / SSE​

Varsayılan bağdaştırıcı HTTP'dir. Bildirilen text/event-stream içeriği SSE kullanım niyetini belirtir; üstbilgiler geldiğinde yürütme süreci gerçek yanıtı da sınıflandırır. probeStreamingResponse(), açıkça çağrılan ayrı bir yoklamadır; her çağrıdan önce otomatik olarak çalışmaz.

Temel HTTP istekleri ek yapılandırma gerektirmez. Gelişmiş postman-runtime yapılandırması için SendOptions.runner kullanın.

WebSocket​

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

const session = createManualSession({
kind: "websocket",
url: "wss://api.example.com/ws",
// Manual-session options are distinct from SendOptions.websocket.
});

MCP​

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

const session = createManualSession({
kind: "mcp",
endpoint: "https://api.example.com/mcp",
});

Varsayılan manuel MCP oturumu Streamable HTTP ve endpoint kullanır. stdio için kind: "mcp", transport: "stdio", yerel bir command ve isteğe bağlı args iletin; oturumu başlatmak yapılandırılmış süreci çalıştırır.

gRPC​

gRPC; bir adres, tanımlayıcı kaynağı (.proto dosyaları veya sunucu yansıması), tam nitelikli hizmet adı ve yöntem gerektirir:

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

const session = createManualSession({
kind: "grpc",
address: "localhost:50051",
service: "powerduck.examples.Echo",
method: "Echo",
protoPaths: ["./echo.proto"],
});

Manuel oturum oluşturma işlevleri henüz açılmamış bir oturum döndürür. Göndermeden önce open(), kaynakları temizlerken close() çağırın. gRPC örneği uyumlu bir yerel sunucu ve proto dosyası gerektirir; manuel oturum seçenekleri SendOptions.grpc ile aynı nesne değildir.

Tam örnek​

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

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

const result = await client.send({
spec: openApiDocument,
target: { operationId: "updateUser" },
values: {
path: { id: "42" },
query: { verbose: "true" },
header: { "X-Request-Id": "req-abc" },
body: { name: "Alice", email: "alice@example.com" },
},
serverUrl: "https://api.staging.example.com",
auth: { type: "bearer", token: "staging-token" },
timeout: 10000,
variables: {
environment: "staging",
},
});

console.log(result.response.status);
console.log(result.response.body);
console.log(result.response.headers);

Sonraki adımlar​

  • Dışa aktarılan tüm türler için API Başvurusu sayfasına bakın
  • Protokole özgü kullanım örnekleri için Örnekler sayfasını inceleyin