تخطي إلى المحتوى

tsoa-next logotsoa-next

Pronounced so

OpenAPI- تطبيقات تطبيقية متوافقة مع المعايير TypeScript و Node

build statusnpm versionQuality Gate Status

نشأة المشروع

tsoa-next استمر tsoa مشروع The original repository and its contributors established the stable TypeScriptأولاً OpenAPI-الأساس الأول لهذا العمل يعتمد عليه Where historical release notes or migration references still point upstream, they are kept intentionally for provenance.

الهدف

  • TypeScript المتحكمون والنماذج كمصدر واحد للحقيقة
  • A valid OpenAPI (سابقا) Swagger20, 3.0, or 3.1 spec is generated from your controllers and models, including:
    • الرياضيات (مثل GET /users)
    • التعاريف القائمة على أساس TypeScript الوصلات البينية (العارضات)
    • البارامترات/الممتلكات النموذجية المميزة حسب الاقتضاء أو الاختيارية على أساس TypeScript (على سبيل المثال، بلدي Property)؟ الخيط اختياري في OpenAPI العينة
    • jsDoc supported for object descriptions (most other metadata can be inferred from TypeScript الأنواع
  • تولد الدروب للخيارات المتوسطة
    • Express.. Hapiو Koa ويمكن حالياً دعم الإطارات الوسيطة الأخرى باستخدام نموذج معالج بسيط
    • الحمولات المقيدة

الفلسفة

  • إعادة تشغيل TypeScript نوع الشروح لتوليد البيانات الفوقية للبروتوكول الاختياري إذا أمكن
  • إذا كانت الشروح من النوع العادي ليست طريقة مناسبة للتعبير عن البيانات الفوقية، استخدام المصممين
  • Use jsdoc for pure text metadata (e.g. endpoint descriptions)
  • الحد الأدنى من الغليان
  • النماذج هي أفضل طريقة لتمثيلها بالوصلات البينية (هيكل البيانات المشروطة)، ولكن يمكن أيضاً تمثيلها بالصفوف
  • التحقق من وقت العمل tsoa-next ينبغي أن تتصرف بأكبر قدر ممكن من الدقة في المواصفات التي تولدت OpenAPI الكيماوي يصف وتوضح أي اختلافات في منطق التصديق بتحذيرات قطع الأشجار أثناء توليد OpenAPI المواصفات و/أو الطرق.
    • يرجى ملاحظة ذلك بتمكينها من ذلك OpenAPI 3-0 أو 3-1 تُقلّل إلى أدنى حدّ من فرص المنطق المتباين في التحقّق بما أنّ الأشكال الكيميائيّة الجديدة أكثر تعبيراً من OpenAPI 2.0

قائمة الميزات

  • الجيل OpenAPI 2.0, 3.0, أو 3.1 وثائق مباشرة من TypeScript المتحكمون، النماذج، JSDoc تعليقات.
  • Treat TypeScript المتحكمون والنماذج كمصدر للحقيقة للمسارات والبارامترات والكساءات والأمثلة والعلامات والبيانات الوصفية الأمنية.
  • ناقلات طرق محددة لإطار عمل Express.. Koaو Hapiأو إمدادك بنفسك Handlebars نماذج للزمن المعتاد
  • (ب) تقديم مدخلات قيمة في الوقت الحاضر مع إكراه قابل للتشكيل ومناولة إضافية للأفضلية تظل متوافقة مع الكيميائي المولد.
  • المواصفات النهائية للمراقبين المحليين @SpecPath(...) بدون قراءة ملف مطوّر من قرص محلي عند الطلب
  • الخدم المبنية json.. yaml.. swagger.. redocو rapidoc المواصفات، مع دقّات docs UI محملة بشكل سلس كقران اختياريين عند توافرها.
  • Attach multiple @SpecPath(...) المصممون لنفس المتحكم طالما أن طرقهم المصممة فريدة
  • Cache built in or custom spec responses with 'none'داخل العملية 'memory'أو مُعالج مُحتال يُمكن أن يقرأ من الخيوط أو المجرى
  • العودة إما string أو Readable الردود الواردة من العرف @SpecPath(...) من يتعاملون مع الوثائق الجاهزة أو عمليات التكامل في المراحل النهائية.
  • الاستخدام @Validate(...) :: تفويض المصادقة على الوقت المحدد لمكتبات الكيماويات الخارجية المدعومة مثل zod.. joi.. yup.. superstructأو io-ts.
  • إضفاء الطابع العرفي على ترجمة المصادقة وشكل الفشل من خلال سياق التصديق الاختياري الذي تم قبوله من خلال توليد RegisterRoutes(...) الوظائف
  • دعم التوثيق، حقنة التبعية، المستجيبين المناوبين المطبوعين، حمولات الملفات، البرمجيات المتوسطة العرفية، تدفقات عمل التثبيت
  • استخدام tsoa CLI للمواصفات وتوليد الطرق، أو تسمية مؤشرات الأداء البرنامجية من tsoa-next/cli.
  • الهدف الحديث Node.js الإطلاقات المصحوبة بسياسة الدعم التي تم التحقق منها في مركز التحقيقات الجنائية عبر النظام التجاري الدولي السابق، وهو النظام الحالي للمواصلات السلكية واللاسلكية، Node vNext.

البدء

  • الاحتياجات:
    • Node.js 22 أو جديد
    • npm 10 أو أكثر
    • نحن نتحقق من الدعم في جميع أنحاء LTS السابقة، و LTS الحالية، و Node vNext in CI
  • الوثائق
  • مرجع API
  • دليل البدء

واجهة الحزمة

  • مدخرات للواردات، ومساعدات لمدد زمنية محددة، وولدت الدعم من الطرق tsoa-next
  • برامجيات الاستيراد tsoa-next/cli
  • استخدام tsoa ثنائية CLI أوامر الجيل

أمثلة

اطّلع على الأدلة

استخدم مستودع playground المرافق للحصول على تطبيقات أمثلة قابلة للتشغيل وسيناريوهات تركّز على الخادم.

اطّلع على أمثلة المتحكمات في الاختبارات

اطّلع على أمثلة النماذج في الاختبارات

نحتاج إلى المساعدة

المساهمة في الكود

للمساهمة (عبر طلب سحب PR)، يرجى الاطلاع أولاً على دليل المساهمة

Contributors

No contributors

Changelog

No recent changes

توليد OpenAPI وتوليد المسارات والتحقق وقت التشغيل مع اعتماد TypeScript أولاً.