API संदर्भ
@powerduck/openapi-codegen का पूरा API दस्तावेज़।
शीर्ष-स्तरीय फ़ंक्शन
| एक्सपोर्ट | सिग्नेचर | विवरण |
|---|---|---|
generate | (options: GenerateOptions) => string | एक ऑपरेशन के लिए चलने योग्य सोर्स कोड बनाता है |
register | (generator: Generator) => void | कस्टम जनरेटर रजिस्टर करता है |
get | (language: string, client: string) => Generator | undefined | जनरेटर खोजता है |
list | () => Array<{ language: string; client: string }> | सभी रजिस्टर किए गए जनरेटर की सूची देता है |
use | (plugin: Plugin) => void | जनरेटर रजिस्टर करने वाला प्लगइन लागू करता है |
registerBuiltins | () => void | सभी बिल्ट-इन जनरेटर रजिस्टर करता है; इम्पोर्ट के समय अपने-आप कॉल होता है |
normalize | (options) => NormalizedRequest | दस्तावेज़, पाथ और मेथड को मानकीकृत अनुरोध में बदलता है |
builtinGenerators | Generator[] | सभी बिल्ट-इन जनरेटर की परिभाषाओं का मूल ऐरे |
मॉड्यूल लोड होने पर बिल्ट-इन जनरेटर अपने-आप रजिस्टर होते हैं, इसलिए registerBuiltins() को मैनुअल कॉल करना वैकल्पिक है।
generate(options)
generate(options: GenerateOptions): string
बनाया गया सोर्स कोड स्ट्रिंग के रूप में लौटाता है। get(options.language, options.client) से जनरेटर खोजता है; options.request न हो तो normalize({ document, path, method, serverUrl, securityValues, softRefMode }) कॉल करता है; फिर generator.generate(request) कॉल करता है।
संभावित त्रुटियाँ:
optionsऑब्जेक्ट न हो या ज़रूरी इनपुट गायब हों तोTypeError।- अज्ञात संयोजन के लिए
Error: Unsupported generator: <language>/<client>। normalize()की त्रुटियाँ: अज्ञात पाथ/मेथड, अमान्य दस्तावेज़ या टूटे/चक्रीय$ref, जब तकsoftRefModeसक्षम न हो।
विकल्पों की पूरी तालिका के लिए कॉन्फ़िगरेशन देखें।
register(generator)
register({
language: "mylang",
client: "my-client",
generate(request) {
return `// ${request.method} ${request.path}`;
},
});
language\0client कुंजी से अंदरूनी स्टोर में रजिस्टर करता है। यह ब ड़े और छोटे अक्षरों में भेद नहीं करता।
get(language, client)
const generator = get("javascript", "fetch");
Generator लौटाता है; न मिलने पर undefined।
list()
const combos = list();
// [{ language: "c", client: "libcurl" }, ...]
use(plugin)
use({
name: "my-plugin",
register({ register }) {
register(customGenerator);
},
});
यह plugin.register({ register }) कॉल करने के बराबर है।
registerBuiltins()
registerBuiltins();
बार-बार चलाने पर नतीजा नहीं बदलता; अंदरूनी फ़्लैग इसे सुरक्षित रखता है। builtinGenerators की हर एंट्री रजिस्टर करता है।
normalize(options)
import { normalize } from "@powerduck/openapi-codegen";
const request = normalize({
document,
path: "/pets/{id}",
method: "get",
serverUrl: "https://example.com",
securityValues: { bearerAuth: "token" },
softRefMode: false,
});
$ref सुलझाता है, पाथ/ऑपरेशन पैरामीटर मिलाता है, बॉडी का मीडिया टाइप चुनता है, उदाहरण मान बनाता है, सुरक्षा लागू करता है और baseUrl की गणना करता है। अज्ञात पाथ/मेथड और असमर्थित मेथड पर त्रुटि देता है।
बिल्ट-इन जनरेटर (21 भाषाएँ, 41 क्लाइंट)
src/emitters/index.ts में रजिस्टर किए गए सटीक language / client पहचानकर्ता। खोज में बड़े और छोटे अक्षरों का भेद नहीं होता; तालिका में मानक नाम दिए गए हैं।
| भाषा | language | client के मान |
|---|---|---|
| C | c | libcurl |
| C# | csharp | httpclient, restsharp |
| Clojure | clojure | clj-http |
| Dart | dart | http |
| F# | fsharp | httpclient |
| Go | go | new-request |
| HTTP अनुरोध फ़ाइल | http | http1 |
| Java | java | asynchttp, java-net-http, okhttp, unirest |
| JavaScript | javascript | axios, fetch, jquery, ofetch, xhr |
| Kotlin | kotlin | okhttp |
| Node.js | node | axios, fetch, ofetch, undici |
| Objective-C | objc | nsurlsession |
| OCaml | ocaml | cohttp |
| PHP | php | curl, guzzle, laravel-http |
| PowerShell | powershell | invoke-restmethod, invoke-webrequest |
| Python | python | aiohttp, http-client, httpx-async, httpx-sync, requests |
| R | r | httr2 |
| Ruby | ruby | net-http |
| Rust | rust | reqwest |
| Shell | shell | curl, httpie, wget |
| Swift | swift | nsurlsession |
कुल: 21 भाषाएँ, 41 संयोजन।
जनरेटर उपलब्ध होने का अर्थ यह नहीं कि हर क्लाइंट हर ऑपरेशन दर्शा सकता है। उदाहरण के लिए,
shell/wgetमनमानेmultipart/form-dataअनुरोध सुरक्षित रूप से नहीं बना सकता; उसकी जगहshell/curlयाshell/httpieइस्तेमाल करें।