مقدمة في web APIs in ASP.NET Core [RESTful pattern]
-
كيفية إنشاء واجهات برمجة تطبيقات الويب في ASP.NET Core [نمط RESTful]
ما هي REST API؟
اليوم يشهد العالم
تزايد كبير جدا في التطبيقات وبأنواع مختلفة للعملاء (mobile apps,
browser-based SPAs, desktop apps, IOT apps, ... الخ)، لذلك كان لا بد من إيجاد
طرق أفضل لنقل البيانات من servers إلى clients، بغض
النظر عن التكنولوجيا وserver stacks.
REST APIs حل هذه المشكلة. REST تعني representational state transfer. تعتمد REST APIs على HTTP وتوفر للتطبيقات القدرة على الاتصال باستخدام تنسيق JSON خفيف الوزن lightweight JSON. يتم تشغيلها على خوادم الويب web servers.
يتكون REST من الكيانات التالية:
الموارد Resource:
الموارد هي كيانات entities يمكن التعرف عليها بشكل فريد (على سبيل المثال: data from a
database أو images أو أي بيانات غيرها يمكن استخدامها).
- Endpoint: هي
عبارة عن resource يمكن
الوصول اليها من خلال URL identifier.
- HTTP method: هي
نوع الطلب الذي يرسله العميل client إلى server. حيث يجب
ان تتبع العمليات التي نقوم بها على resource على هذه الطريقة.
- HTTP header: هو
عبارة عن قيمة معينة إضافية تُستخدم لمشاركة معلومات إضافية بين العميل client
والخادم server ، مثل:
- نوع البيانات التي
يتم إرسالها إلى الخادم (JSON، XML).
- نوع التشفير encryption الذي
يدعمه العميل.
- رمز متعلق بالمصادقة Authentication-related token.
يستخدم في هذا REST APIs تنسيق البيانات بشكل JSON هو تنسيق شائع لإرسال البيانات واستلامها من خلال REST APIs.
يعد إنشاء واجهات برمجة تطبيقات الويب API في ASP.NET Core أمرًا سهلاً للغاية. تقوم بإنشاء وحدات تحكم controllers بها 3 أشياء:
- يجب إضافة السمة [ApiController] في بداية API ، والتي تعني أن وحدة التحكم controller ستخدم استجابات HTTP API Responses
- يجب أن يتم اشتقاقها من class ControllerBase بدلاً من Controller class
- يجب تطبيق attribute routing (توجيه السمة) [Route("someUrl/[controller]")]
- بناء على ما سبق ستكون Controller في Web API كما يلي:
[ApiController]
[Route("someURL/[controller]")]
public class ExampleController : ControllerBase
الاسم | الوصف |
Ok | يعيد الكود 200 والذي يعني نحاج العملية |
NotFound | يعيد الكود 404 والذي يعين غير موجود |
BadRequest | يعيد الكود 400 والذي يعني خطأ |
- ما هي ApiController attribute؟كما ذكرنا سابقا يجب تطبيق attribute [ApiController] في وحدة تحكم Web API ، وذلك بهدف إضافة إمكانيات الى API حتى يتمكن من أداء مهام محددة ل API . هذه المهام هي:
- الاستجابة ل Attribute Routing.
- يقوم تلقائيًا بتشغيل HTTP 400 response عندما لا يتم العثور على resource على server.
- يحدد الموقع الذي توجد فيه قيم parameter . وهذه المواقع هي [FromBody] ، [FromForm] ، [FromHeader] ، [FromQuery] ، [FromRoute] Attriubtes.
- عند استخدام [FromForm] attribute لإرسال parameter في action method’s ، يتم استنتاج نوع محتوى content type للبيانات بشكل multipart/form-data.
- يعمل Web API على إرجاع الخطأ في حال حدوثه مستندًا إلى مواصفات RFC 7807. يتيح ذلك لواجهة برمجة تطبيقات الويب المصممة بتقنيات مختلفة مثل Java و Ruby و ASP.NET Core وغيرها من التواصل مع بعضها البعض دون أي مشكلة.
اترك تعليقك