واجهة برمجة تطبيقات JSON أو JSON RPC الصحيحة

ما هي واجهة برمجة تطبيقات JSON؟


بالتأكيد يعرف الكثير.

JSON - تنسيق نصي لتبادل بيانات JSON
API - واجهة برمجة تطبيقات API

الكلمات الرئيسية هنا: واجهة تبادل البيانات.

أ ، ما هو JSON-RPC؟



JSON - نحن على علم بذلك بالفعل.

RPC - استدعاء الإجراء البعيد RPC

نستنتج أن JSON-RPC هو: تبادل البيانات عن بعد.

بالتأكيد سيحدث تبادل البيانات هذا مع واجهة معينة ، أي مع API.

وما هي المشكلة ؟! تسأل. والحقيقة هي أن بعض المبرمجين الذين يطورون واجهة برمجة تطبيقات JSON ، أي الواجهة ، ينسون JSON-RPC. ويبدأ الاختراع التالي للدراجة. يقول مبرمج Frontend: "سأعطيك هذا json" ، ومبرمج Backend يرد: "سأعيد لك مثل هذا json". وكل شيء سيكون على ما يرام ، ولكن سيكون من الجيد أن نتذكر أن الأشخاص الأذكياء طوروا معايير طويلة ، أو بالأحرى بروتوكولات تبادل البيانات. وليس بعض العناصر المعقدة للغاية ، ولكنها بسيطة جدًا: JSON-RPC

على الأرجح ، إن لم يكن أن نقول أن الجميع تقريبًا يعرفون هذه البروتوكولات ويستخدمونها. مجموعة من الخوادم مكتوبة ، إلخ. لكن شخصياً ، ليس كل شيء يناسبني في البروتوكولات القائمة. بدت لي غير مرنة بما فيه الكفاية وغير منطقية في كل شيء. كما كنت قد خمنت ، قررت أن أخترع دراجتي json-rpc-1.5

الاختلافات الرئيسية من البروتوكولات القائمة هي:


  • معلمة "تسجيل" اختيارية - التوقيع أو الرمز المميز
  • في الاستعلامات ، بدلاً من المعلمة المعلمة ، يتم استخدام معلمة البيانات ، لأن نرسل البيانات دائمًا ، وليس المعلمات فقط.
  • في جميع الإجابات ، يتم إرجاع المعلمة "النتيجة" دائمًا وتحتوي على وصف لنتائج طلب البحث "النجاح" أو "الخطأ".
  • تأتي جميع البيانات في الردود في معلمة "البيانات"
  • يمكنك استخدام الأسماء المستعارة لتسمية معلمات الطلب والاستجابة.

قد يبدو. أن الاختلافات طفيفة ، لكنها مهمة بشكل أساسي.
بالمناسبة ، ظهر هذا البروتوكول في الممارسة العملية ، أي عند إنشاء json api ، استخدمت الطريقة الموضحة في هذا البروتوكول.

ملاحظة:


بعد أن تلقيت مجموعة من التعليقات والسلبيات السلبية ، قررت التحقق مرة أخرى ، ربما أفعل شيئًا خاطئًا حقًا؟ وبطبيعة الحال ، كل ما أكتب هنا هو رأيي الشخصي ولا أفرض أي شيء على أي شخص. دعني أعطيك بضعة أمثلة:
1. مثال لطلب Yandex Direct JSON API :
{ "method": "GetClientInfo", "param": ["agrom"], "locale": "ru", "token": "0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f" } 

ويمكنهم أيضًا القراءة عن الرموز المميزة: رموز التفويض

2. مثال من Sberbank API Payment من تطبيق جوال يستخدم Apple Pay
لن أعطي طلب JSON ، إنه كبير ، يمكنك رؤية الرابط.
من المهم أن يحتوي طلب JSON على "paymentToken". في ما يلي رابط لمتطلبات Apple الخاصة بتكوين الرمز المميز

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

Source: https://habr.com/ru/post/ar429524/


All Articles