كيفية تصميم واجهة برمجة تطبيقات RESTful لمحرك تحليل الوسائط

StackOverflow https://stackoverflow.com/questions/1645744

  •  22-07-2019
  •  | 
  •  

سؤال

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

الخطوط العريضة لتصميمي الأولي هي كما يلي:

  • ينشر العميل ملف XML للتكوين إلى http://manalysis.com/facerecognition.هذا يخلق حساب تعريفي والتي يمكن استخدامها لجلسات تحليل متعددة.يتضمن XML للاستجابة أ ProfileID للإشارة إلى هذا الملف الشخصي.يمكن للعملاء تخطي هذه الخطوة لاستخدام معلمات التكوين الافتراضية
  • سيتم تحليل بيانات الفيديو الخاصة بمشاركات العميل http://manalysis.com/facerecognition (مع ProfileID كمعلمة، إذا تم إعداده).هذا يخلق جلسة التحليل.يحتوي إرجاع XML على SessionID.
  • يمكن للعميل إرسال GET إلى http://manalysis.com/facerecognition/SessionID لتلقي حالة الجلسة.

هل أنا على الطريق الصحيح؟وعلى وجه التحديد، لدي الأسئلة التالية:

  • هل يجب أن أشمل facerecognition في URL؟يقول روي فيلدنج أن "واجهة برمجة تطبيقات REST يجب ألا تحدد أسماء الموارد الثابتة أو التسلسلات الهرمية" هل هذا مثال على هذا الخطأ؟
  • يمكن إرجاع نتائج التحليل إلى العميل في ملف XML كبير واحد أو عند اكتشاف كل حدث.كيف يجب أن أخبر محرك التحليل بمكان إرجاع النتائج؟
  • هل يجب عليّ حذف ملف تعريف بشكل صريح عند الانتهاء من التحليل، من خلال استدعاء DELETE؟

شكرًا،

ج

هل كانت مفيدة؟

المحلول

يمكنك إصلاح عنوان URL لنقطة الدخول،

GET /facerecognition

<FaceRecognitionService>
  <Profiles href="/facerecognition/profiles"/>
  <AnalysisRequests href="/facerecognition/analysisrequests"/>
</FaceRecognitionService>

قم بإنشاء ملف تعريف جديد عن طريق نشر ملف تعريف XML على عنوان URL في سمة href لعنصر ملفات التعريف

POST /facerecognition/profiles
201 - Created
Location: /facerecognition/profile/33

ابدأ التحليل عن طريق إنشاء طلب تحليل جديد.سأتجنب استخدام مصطلح الجلسة لأنه عام للغاية وله الكثير من الارتباطات السلبية في عالم REST.

POST /facerecognition/analysisrequests?profileId=33
201 - Created
Location: /facerecognition/analysisrequest/2103

التحقق من حالة العملية

GET /facerecognition/analysisrequest/2103

<AnalysisRequest>
   <Status>Processing</Status>
   <Cancel Method="DELETE" href="/facerecognition/analysisrequest/2103" />
</AnalysisRequest>

عند انتهاء المعالجة، قد يعود نفس GET

<AnalysisRequest>
   <Status>Completed</Status>
   <Results href="/facerecognition/analysisrequest/2103/results" />
</AnalysisRequest>

عناوين URL المحددة التي اخترتها عشوائية نسبيًا، ويمكنك استخدام ما هو أكثر وضوحًا بالنسبة لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top