सामान्य
कर सकते हैं मैं उपयोग करता हूँ OpenAPI 3 या 3.1 के बजाय OpenAPI 2 (formerly) Swaggerक्या?
हाँ। सेट spec.specVersion to 3 या 3.1 अपने tsoa.json फ़ाइल में अधिक विन्यास विकल्प देखें Config एपीआई संदर्भ।
मैं कैसे उपयोग करूं? tsoa कोआ, हांपी या अन्य ढांचे के साथ?
अपने आप में मिडलवेयर प्रॉपर्टी सेट करें tsoa विन्यास बॉक्स में से, एक्सप्रेस, हांपी और कोआ समर्थित हैं। आप एक कस्टम टेम्पलेट भी प्रदान कर सकते हैं, अधिक जानकारी के लिए, कृपया चेक आउट करें the guide
यह सुनिश्चित करने के लिए कि रनटाइम में कोई अतिरिक्त गुण नहीं आते हैं
डिफ़ॉल्ट रूप से OpenAPI मॉडल के लिए अनुमति देता है additionalProperties। यदि आप रनटाइम पर यह सुनिश्चित करना चाहते हैं कि डेटा में केवल आपके मॉडल में परिभाषित गुण हैं, तो सेट करें noImplicitAdditionalProperties विकल्प Config या तो "silently-remove-extras" या "throw-on-extras"। Caveat:
- निम्नलिखित प्रकार हमेशा उन तरीकों की प्रकृति के कारण अतिरिक्त गुणों की अनुमति देंगे जो वे काम करते हैं:
- The
anyप्रकार - एक अनुक्रमित प्रकार (जो स्पष्ट रूप से अतिरिक्त गुणों की अनुमति देता है) की तरह
export interface IStringToStringDictionary { [key: string] : string }- यदि आप उपयोग कर रहे हैं tsoa एक मौजूदा सेवा है कि उपभोक्ताओं है के लिए ... - आपको सेटिंग से पहले अपने उपभोक्ताओं को सूचित करना होगा
noImplicitAdditionalPropertiesto"throw-on-extras"चूंकि यह एक ब्रेकिंग बदलाव होगा (इस तथ्य के कारण कि उन निकायों का अनुरोध करना जो पहले काम करते थे उन्हें अब एक त्रुटि मिलती है)।
- The
- भले ही,
"noImplicitAdditionalProperties" : "silently-remove-extras"विरासत और नए एपीआई दोनों के लिए एक बहुत अच्छा विकल्प है (के बाद से यह सी # सीरियलाइज़र और अन्य लोकप्रिय जेएसओएन सीरियलाइज़र के व्यवहार को प्रतिबिंबित करता है)।
डुप्लिकेट मॉडल नामों से निपटना
यदि आपके पास एक ही नाम के साथ कई मॉडल हैं, तो आपको त्रुटियां मिल सकती हैं जो इंगित करती हैं कि कई मिलान मॉडल हैं। यदि आप एक मॉडल के 'कैनोनिक' संस्करण के रूप में एक वर्ग / इंटरफ़ेस को नामित करना चाहते हैं, तो इसे इस तरह के रूप में चिह्नित jsdoc तत्व जोड़ें:
/**
* @tsoaModel
*/
export interface MyModel {
...
}मैं अपने ओएएस से कैसे प्राप्त कर सकता हूं?
अब आपके पास है OpenAPI विशिष्टता (OAS) (swagger.json), आप सभी प्रकार के अद्भुत उपकरणों का उपयोग कर सकते हैं जो प्रलेखन, क्लाइंट SDK और अधिक उत्पन्न करते हैं। here।
बड़े सरणी को मान्य करने के लिए सीमा को ओवरराइड कैसे करें (20 से अधिक तत्वों के साथ)
डिफ़ॉल्ट रूप से Express उपयोग qs आंतरिक रूप से पार्सर के रूप में, और इसके पास सरणी में 20 तत्वों को मान्य करने के लिए डिफ़ॉल्ट सीमा है इसे ओवरराइड करने के लिए आपको अपने एक्सप्रेस कॉन्फ़िगरेशन में निम्नलिखित कॉन्फ़िगरेशन जोड़ना होगा:
const app = express()
app.set('query parser', function (str) {
return qs.parse(str, { arrayLimit: Infinity })
})
app.use(bodyParser.json())
app.use(Router())कृपया ध्यान दें कि आपको इसे अन्य मिडलवेयर के शीर्ष पर रखना होगा।
