هذا مشروع ASP.NET Core بسيط تم تكوينه مسبقًا، ومن المفترض أن يتم اعتماده ويهدف إلى منحك السبق في إنشاء واجهات برمجة تطبيقات مريحة، استنادًا إلى البنية ثلاثية المستويات.
لعرض بعض وظائفه، يأتي هذا المشروع مع تنفيذ بسيط وخيالي لتطبيق إدارة المشروع المسمى Plantagoo.
لقد قمت شخصيًا بإنشاء مشاريع ASP.NET Core API من البداية بشكل متكرر خلال الشهرين الماضيين. على الرغم من أنه من المعروف أن التكنولوجيا تتغير وتتحسن بسرعة، إلا أنني شعرت بالحاجة إلى إنشاء هذا المشروع ونشره حتى أتمكن من مشاركته والإشارة إليه والبناء عليه في المستقبل.
بنية ثلاثية الطبقات، باستخدام مكتبات الفئات لكل طبقة
خدمات غير متزامنة تعتمد على DI، وتعيد كائن الاستجابة العامة
المصادقة والتفويض المستند إلى JWT
التجزئة المستندة إلى PBKDF2
معالجة الأخطاء العالمية القائمة على البرمجيات الوسيطة
نقاط نهاية API مريحة، وإرجاع DTOs ورموز حالة HTTP
تنفيذ التصفية والترحيل والفرز لنقطة نهاية API، والتي تقوم بإرجاع قوائم الكائنات
تنفيذ إصدار نقطة نهاية API
الوصول إلى البيانات المستندة إلى إطار عمل الكيان عبر كيانات POCO
تعيين كائن إلى كائن استنادًا إلى AutoMapper وتحسين استعلام قاعدة البيانات
إمكانية التكوين الذي يركز على الأمان لسلسلة اتصال قاعدة البيانات ومعلمات JWT عبر ملفات "appsettings.json" المستندة إلى البيئة و/أو الأسرار و/أو متغيرات البيئة
اختبار التكامل القائم على xUnit، بما في ذلك الإعداد والبذر والتفكيك لقاعدة البيانات المخصصة
لبدء هذا المشروع وتشغيله كما هو، لا تتردد في اتباع الخطوات التالية:
نت كور 3.1+ SDK
IDE (يفضل Visual Studio أو Visual Studio Code)
خادم ماي إس كيو إل 8.0.20+
استنساخ هذا المستودع
في الدليل الجذر، قم باستعادة الحزم المطلوبة عن طريق تشغيل:
dotnet restore
افتح ملفات appsettings.{environment}.json داخل مشروع Plantagoo.API لتخصيص سلسلة الاتصال التالية وفقًا لاحتياجاتك (راجع الخطوة 7 للحصول على بيانات الاعتماد):
server=localhost;Port=3306;database=apiSkeletonDb
لأغراض التطوير، قم بتمكين التخزين السري عن طريق التشغيل (إذا كنت معتادًا على العمل مع متغيرات البيئة، فانتقل سريعًا إلى الخطوة 7):
dotnet user-secrets init
إذا كنت تستخدم نظام التشغيل Windows، فانتقل إلى الملف %APPDATA%MicrosoftUserSecrets<user_secrets_id>secrets.json وافتحه.
إذا كنت تستخدم Linux/macOS، فانتقل إلى الملف ~/.microsoft/usersecrets/<user_secrets_id>/secrets.json وافتحه.
ضمن ملف Secrets.json هذا، أضف الأسطر التالية لتعيين معلمات JWT ولتوسيع سلسلة اتصال قاعدة البيانات الخاصة بك عن طريق إضافة اسم المستخدم وكلمة المرور:
"TokenSettings:Secret": "…", "TokenSettings:AccessExpirationInMinutes": "…", "DB:Username": "…", "DB:Password": "…"
للحصول على نهج Code-First لإنشاء قاعدة البيانات، قم بتشغيل الأمر التالي (تأكد من أن دليلك الحالي هو Plantagoo.Data ):
dotnet ef migrations add InitialCreate
تليها:
dotnet ef database update
بعد ذلك، قم ببناء الحل عن طريق تشغيل:
dotnet build
بمجرد الانتهاء، قم بتشغيل التطبيق عن طريق تشغيل:
dotnet run
قم بتشغيل https://localhost:5001/swagger/index.html في متصفحك لعرض وثائق Swagger الخاصة بواجهة برمجة التطبيقات (API) الخاصة بك
نت كور 3.1
أسب.نت كور 3.1
إطار الكيان الأساسي 3.1
AutoMapper
متعجرف
xUnit