لقد حصلت صناعة التكنولوجيا على قفزات كبيرة في تطوير البرمجيات، سواء كانت ويب أو موبايل. في الوقت الحاضر، النقطة الرئيسية هي الاستخدام الفعال لواجهات برمجة التطبيقات (APIs) في تطوير البرمجيات. كل ميزة توفرها واجهات برمجة التطبيقات توفر ميزة إضافية لتطبيق البرمجيات. يسمح ذلك لأنظمة البرمجيات المختلفة بالتفاعل ومشاركة البيانات بسهولة، مما يحسن من كفاءة التطوير. على سبيل المثال، تحميل الملفات هو واحد من أهم الميزات التي تدعمها العديد من واجهات برمجة التطبيقات، مما يسمح للمستخدمين بتحميل ومشاركة الملفات مثل الصور ومقاطع الفيديو والمستندات.
ستستعرض هذه المقالة المفاهيم الأساسية لتحميل الملفات في واجهات برمجة التطبيقات ثم تقدم دليل خطوة بخطوة في Apidog. Apidog هو
المفاهيم الأساسية لتحميل الملفات في واجهات برمجة التطبيقات
قبل القفز مباشرة لرؤية كيف يعمل تحميل الملفات في واجهات برمجة التطبيقات، نحتاج أولاً إلى دراسة بعض المفاهيم الرئيسية.
نوع المحتوى
يحدد رأس HTTP نوع المحتوى المرسل في جسم رسالة HTTP. إنه جزء مهم من طلبات HTTP واستجابتها لأنه يخبر الخادم أو العميل المتلقي بنوع المحتوى المتخارج وكيفية التعامل معه. يحدد نوع المحتوى صيغة البيانات المرسلة، مثل نص، HTML، JSON، أو XML، ويمكّن الخادم من تحليل المحتوى بشكل صحيح. application/json، text/plain، application/x-www-form-urlencoded، وmultipart/form-data، هي أنواع المحتوى الأكثر شيوعًا. بالنسبة لسياقنا، سنحدد نوع المحتوى ليكون multipart/form-data، مما يسمح بتضمين الملفات في جسم الطلب.
عندما يقدم عميل طلبًا بنوع محتوى multipart/form-data، يتم تقسيم جسم الطلب إلى أجزاء متعددة، كل منها يحتوي على قطعة من البيانات. يفصل سلسلة الحدود في رأس نوع المحتوى كل جزء، والتي يجب أن تكون فريدة ولا تظهر في البيانات المرسلة.
يمكن أن يحتوي كل جزء من الطلب على زوج اسم و قيمة أو ملف. على سبيل المثال، قد يقدم نموذج HTML مع حقل تحميل ملف طلبًا يحتوي على جزء ملف يحتوي على البيانات الثنائية للملف وجزء اسم يحتوي على اسم الملف. قد تحتوي الأجزاء الأخرى على بيانات إضافية، مثل حقول النموذج أو البيانات الوصفية. يبدو تنسيق الرأس كالتالي:
Content-Type: multipart/form-data;
boundary=----xyz123
كما هو موضح أعلاه، يتم تقسيم البيانات المرسلة إلى أجزاء متعددة، لذلك يحتاج الخادم إلى التعرف على مكان بداية كل جزء ونهايته. يفصل كل جزء في جسم الطلب بسلسلة الحدود، تسبقه شرطان “--”. يتبع الجزء الأخير شرطان وسلسلة الحدود، يتبعهما شرطان آخران. تبدأ الحدود عادةً بعدة شرطات وتنتهي بلواحق أبجدية رقمية (على سبيل المثال، ------xyz123
).
-- ----xyz123 Content-Disposition: form-data; name="file"; filename="example.png" Content-Type: image/png
<بيانات ثنائية للملف>
-- ----xyz123
Content-Disposition: form-data; name="field1"
value1 -- ----xyz123--
في هذا المثال، يحتوي جسم الطلب على جزئين: جزء ملف مع البيانات الثنائية للملف وجزء اسم مع القيمة value1
. تفصل سلسلة الحدود كل جزء؛ الجزء الأخير يتبعه شرطان، ويتبع سلسلة الحدود شرطان آخران.
طريقة HTTP
طرق HTTP هي رسائل ترسل إلى خادم تحدد نوع الإجراء المراد اتخاذه. تمكن هذه الطرق من ارتباطات أكثر شمولاً بين المتصفح والخادم. بعض طرق HTTP مدرجة أدناه:
● GET: يسترد موردًا من الخادم.
● POST: يقدم كيانًا إلى الخادم وينشئ موردًا جديدًا.
● PUT: يقوم بتحديث مورد موجود على الخادم.
● DELETE: يحذف موردًا من الخادم.
● PATCH: يقوم بتحديث جزئي لمورد موجود على الخادم.
● HEAD: يسترد رؤوس مورد دون جسمه.
● OPTIONS: يسترد طرق HTTP المدعومة من قبل مورد.
● TRACE: يتم تشغيل اختبار حلقة رسالة على طول المسار إلى المورد المستهدف.
في سياقنا، يجب استخدام طريقة HTTP POST لتقديم طلب تحميل الملف. وذلك بسبب دعم طريقة POST لتقديم البيانات في جسم الطلب.
ترميز الملف
الطريقة المستخدمة لتمثيل بيانات الأحرف في ملف ثنائي تُسمى ترميز الملف. يضمن أن البيانات في الملف يمكن تخزينها وإرسالها وتفسيرها بشكل صحيح عبر أنظمة وبرامج متعددة. هناك العديد من ترميزات الملفات المتاحة، بما في ذلك UTF-8 وASCII.
من الضروري ضمان توافق ترميز الملف مع الخادم وأي أنظمة أخرى تعالجه عند العمل مع تحميل الملفات في واجهات برمجة التطبيقات. بشكل عام، UTF-8 هو ترميز الملف الافتراضي لأنه مدعوم على نطاق واسع من قبل العديد من الأنظمة ويمكنه تمثيل أي حرف.
حدود حجم الملف
تشير حدود حجم الملف إلى أكبر ملف يمكن تحميله على الخادم. يمكن أن يساعد ضبط حدود حجم الملف في منع هجمات حرمان الخدمة وضمان أن الملفات الكبيرة لا تثقل موارد الخادم. يمكن تعيين الحدود على كل من مستوى العميل ومستوى الخادم.
يمكن للمتصفح أو البرنامج المستخدم لتقديم طلب تحميل الملف تطبيق حدود حجم الملف على مستوى العميل. عادةً ما يكون لدى المتصفحات حدود حجم ملفات خاصة بها، تختلف بناءً على المتصفح ونظام التشغيل. على سبيل المثال، تحد بعض المتصفحات تحميل الملفات إلى 2 جيجابايت، بينما تسمح الأخرى بتحميلات أكبر. من ناحية أخرى، يمكن تعيين حدود حجم الملف على مستوى الخادم في تكوين خادم الويب أو في كود التطبيق، مما يمكن تكوينه بناءً على موارد الخادم المتاحة، وحجم الملفات التي يتم تحميلها عادةً، ومستوى الأمان المرغوب.
يجب أن تحتوي نقاط نهاية واجهة برمجة التطبيقات التي تقبل تحميل الملفات على حدود حجم الملف لمنع تحميل ملفات كبيرة جدًا لضمان بقاء الخادم مستقرًا وقابلًا للاستجابة.
كيفية تحميل الملفات في الطلبات باستخدام واجهة برمجة التطبيقات؟

Apidog هو أداة لتوثيق واختبار واجهات برمجة التطبيقات تساعد المطورين على إنشاء وتوثيق وتصحيح واختبار وتخيل واجهات برمجة التطبيقات الخاصة بهم. هدفه هو تسهيل إنشاء وإدارة واجهات برمجة التطبيقات REST بشكل أسهل من خلال توفير واجهة بسيطة وسهلة الاستخدام. Apidog متاح في إصدارات قائمة على السحابة وي支持 مجموعة متنوعة من لغات البرمجة وأطر العمل الخاصة بواجهات برمجة التطبيقات، مما يساعدك على تحميل الملفات في واجهة برمجة التطبيقات بسلاسة.
الآن بعد أن تناولنا الأسس المتعلقة بتحميل الملفات في واجهات برمجة التطبيقات ونعرف ما هو Apidog، لنغوص في تعليمات خطوة بخطوة لأداء تحميل الملف باستخدام Apidog.
الخطوة 1: إنشاء مشروع جديد
افتح تطبيق Apidog وأنشئ طلبًا جديدًا.

الخطوة 2: اختيار طريقة الطلب
اختر طريقة الطلب POST من الخيارات المنسدلة، والتي تشمل GET، POST، PUT، DELETE، TRACE، HEAD، إلخ.

الآن نحتاج إلى إدخال عنوان URL للخادم الذي سيستقبل الملف. بمساعدة Apidog، يمكننا الاختبار باستخدام ميزة Local Mock المتاحة ونحتاج فقط إلى تقديم مجلد فرعي مثل هنا في هذا المثال؛ نحن نقوم بتحميل صورة السيارة، لذا سنضيف /car
إلى عنوان URL فقط.
بينما لا يقتصر ذلك، يمكنك استخدام أي من الخوادم التي يمكن أن تستقبل الملف، والذي يمكن أيضًا القيام به بمساعدة بيئة الاختبار أو الإنتاج المقدمة بواسطة Apidog.

الخطوة 3: تعيين نوع محتوى جسم الطلب
حدد نوع محتوى جسم الطلب ليكون multipart/form-data بعد ذلك. يضمن ذلك أن يمكن للعميل تضمين الملفات في جسم الطلب. يمكننا القيام بذلك عن طريق الانتقال إلى قسم الجسم واختيار بيانات النموذج، كما هو موضح أدناه:

الخطوة 4: إضافة حقل ملف إلى جسم الطلب
لتمكين العملاء من تحميل الملفات إلى واجهة برمجة التطبيقات الخاصة بك، قم بتضمين حقل ملف في جسم الطلب. للقيام بذلك، انقر فوق مربع إضافة معلمة جديدة، أضف اسم الحقل، واختر ملف من القائمة المنسدلة.

في الصورة أعلاه، يمكنك أن ترى أنك يمكنك تحميل ملف بمجرد اختيار الملف من القائمة المنسدلة.
الخطوة 5: حفظ واختبار الطلب
بعد تكوين الطلب، احفظه واختبره باستخدام أداة الاختبار Apidog. للقيام بذلك، انقر فوق زر إرسال في محرر نقطة النهاية. يمكنك بعد ذلك إرسال طلب تحميل ملف إلى نقطة النهاية والتحقق مما إذا كان الخادم قد استقبل الملف وأي بيانات إضافية قمت بتضمينها في جسم الطلب. أخيرًا، ستتمكن من رؤية الناتج النهائي كما هو موضح أدناه:
يمكنك أيضًا رؤية ناتج الكود الخاص بك بعدة تنسيقات مقدمة من Apidog، مثل Shell، JavaScript، Java، Swift، Go، PHP، Python، HTTP، C، C#، Ruby، إلخ، والذي يمكن رؤيته في الصورة أدناه:
تهانينا! لقد قمت بنجاح بإضافة طلب تحميل ملف بمساعدة Apidog.
الخاتمة
تعتبر وظيفة تحميل الملفات ضرورية للعديد من تطبيقات الويب والموبايل، وأصبحت واجهات برمجة التطبيقات لتحميل الملفات أكثر شيوعًا. في هذه المقالة، أظهرنا أنه عند تطوير واجهة برمجة التطبيقات التي تقبل تحميل الملفات، من الضروري مراعاة نوع المحتوى، طريقة HTTP، ترميز الملف، حدود حجم الملف، وتدابير الأمان.
أخيرًا، بمساعدة أدوات Apidog القوية في تصميم واختبار واجهات برمجة التطبيقات والطلبات، يسهل إعداد تحميل الملفات في واجهات برمجة التطبيقات والطلبات العملية، والتي تتم في خطوات قليلة جدًا.