FAQ
يمكن أستخدم OpenAPI 3 أو 3-1 بدلا من OpenAPI 2 (سابقا) Swagger؟
نعم المجموعة spec.specVersion إلى 3 أو 3.1 في tsoa.json ملف See more config options in the Config المرجع.
كيف أستخدم tsoa مع (كوا)، (هابي)، أو أُطر أخرى؟
جهزوا ممتلكات المنتصف tsoa config. من خارج الصندوق، يُدعم (إيبي) و(كوا) يمكنك أيضاً تقديم نموذج تقليدي، لمزيد من المعلومات، يرجى التحقق the guide
كيفية ضمان عدم وجود أي ممتلكات إضافية في وقت غير مناسب
بالخطأ OpenAPI يسمح للنماذج additionalProperties. إذا أردت أن تتأكد في الوقت الحاضر أن البيانات لديها فقط العقارات المحددة في نماذجك noImplicitAdditionalProperties الخيار في Config إلى أي منهما "silently-remove-extras" أو "throw-on-extras". المقهى:
- وستسمح الأنواع التالية دائماً بممتلكات إضافية بسبب طبيعة طريقة عملها:
- The
anyالنوع - نوع مفهرس (يسمح صراحة بخواص إضافية)
export interface IStringToStringDictionary { [key: string] : string }- إذا كنت تستخدم tsoa لخدمة قائمة لديها مستهلكين - عليك أن تُخبر مستهلكيك قبل أن تضع
noImplicitAdditionalPropertiesإلى"throw-on-extras"وبما أنه سيكون تغييراً مقتضباً (نظراً إلى أن طلب الهيئات التي كانت تعمل سابقاً سيقع الآن على خطأ).
- The
- بغض النظر
"noImplicitAdditionalProperties" : "silently-remove-extras"وهو خيار عظيم لكل من الميراث والآداب الجديدة (بما أن هذا يعكس سلوك المتسلسلين من طراز C#) وغيره من المتسلسلين الشعبيين من طراز JSON).
التعامل مع الأسماء النموذجية المزدوجة
إذا كان لديك نماذج متعددة بنفس الاسم، قد تحصل على أخطاء تشير إلى أن هناك نماذج متطابقة متعددة. إذا كنت ترغب في تسمية صنف/وجه كنسخة 'كانونية' من نموذج، إضافة عنصر جيسكو علامة على ذلك:
/**
* @tsoaModel
*/
export interface MyModel {
...
}كيف يمكنني الحصول على أكثر من بلدي منظمة الدول الأمريكية؟
الآن أن لديك OpenAPI المواصفات (OAS) 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())رجاءً لاحظْ بأنّك يَجِبُ أَنْ تَضِعَه فوق الإطارِ الأوسطِ الآخرِ.
