البرمجة

تعريف مسارات معلمات اختيارية في ويب API

في ويب API، يمكنك تعريف قيم افتراضية للمعلمات الاختيارية في التوقيع الخاص بالتحكم بالطريقة، وذلك باستخدام RouteAttribute. لتجنب الآثار الجانبية الناتجة عن استخدام أسماء المعلمات كقيم افتراضية، يمكنك تعيين قيم افتراضية خالية (null) لكل من apc و xpc في التوقيع الخاص بك، وهذا يجعل القيم الافتراضية تعمل بشكل صحيح عند عدم توفر المعلمات في الطلب.

التعديل اللازم في توقيع التحكم بالطريقة هو كالتالي:

csharp
[Route("products/filter/{apc?}/{xpc?}/{sku?}")] public IHttpActionResult Get(string apc = null, string xpc = null, int? sku = null) { ... }

بهذا التعديل، يمكنك الآن استدعاء الطريقة بـ ~/api/products/filter?sku=7199123 بدون وجود آثار جانبية، حيث تعتبر قيم apc و xpc فارغة (null) كما يجب.

المزيد من المعلومات

في ويب API، يمكنك أيضًا استخدام RouteAttribute لتحديد أنماط متقدمة للمسارات باستخدام قواعد تطابق معينة. يمكنك على سبيل المثال استخدام قواعد التطابق لتحديد نطاق القيم المقبولة للمعلمات الاختيارية، مما يمنحك مرونة أكبر في تحديد كيفية توقع الطريقة للمسارات المختلفة.

على سبيل المثال، يمكنك تحديد نطاق القيم المقبولة للـ sku لتكون فقط أرقام صحيحة إيجابية، وذلك باستخدام تعبير عن طريقة التطابق مع القيم:

csharp
[Route("products/filter/{apc?}/{xpc?}/{sku:int?}")] public IHttpActionResult Get(string apc = null, string xpc = null, int? sku = null) { ... }

هذا التعديل يضمن أن قيمة sku يجب أن تكون عددًا صحيحًا (integer) إيجابيًا، وإذا تم توفير قيمة غير صحيحة لـ sku، فسيتم رفض الطلب وإرجاع رمز استجابة خطأ.

زر الذهاب إلى الأعلى