freeCodeCamp/curriculum/challenges/arabic/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-ro...

3.2 KiB

id title localeTitle challengeType
587d7fb1367417b2b2512bf1 Serve JSON on a Specific Route خدمة JSON على طريق معين 2

Description

بينما يخدم خادم HTML (الذي خمنته!) HTML ، فإن واجهة برمجة التطبيقات تخدم البيانات. تسمح واجهة برمجة التطبيقات (Rpresentational State Transfer) REST بتبادل البيانات بطريقة بسيطة ، دون الحاجة إلى معرفة العملاء لأي تفاصيل حول الخادم. يحتاج العميل فقط إلى معرفة مصدر المورد (عنوان URL) والإجراء الذي يريد تنفيذه عليه (الفعل). يتم استخدام الفعل GET عندما تقوم بجلب بعض المعلومات ، دون تعديل أي شيء. في هذه الأيام ، يكون تنسيق البيانات المفضل لنقل المعلومات عبر الويب هو JSON. ببساطة ، JSON هي طريقة ملائمة لتمثيل كائن JavaScript كسلسلة ، بحيث يمكن نقله بسهولة. لنقم بإنشاء واجهة برمجة تطبيقات بسيطة عن طريق إنشاء مسار يستجيب مع JSON على المسار /json . يمكنك القيام بذلك كالمعتاد ، مع طريقة app.get() . داخل معالج المسار ، استخدم الطريقة res.json() ، وتمريرها في كائن كوسيطة. تغلق هذه الطريقة حلقة الطلب-الاستجابة ، وتعيد البيانات. وراء الكواليس ، يقوم بتحويل كائن جافا سكريبت صالح إلى سلسلة ، ثم يقوم بتعيين الرؤوس المناسبة لإخبار المتصفح أنك تخدم JSON ، ويرسل البيانات مرة أخرى. يحتوي الكائن الصحيح على البنية المعتادة {key: data} . يمكن البيانات با رقم ، سلسلة ، كائن متداخل أو مصفوفة. يمكن أن تكون البيانات أيضًا متغيرًا أو نتيجة استدعاء دالة ؛ في هذه الحالة سيتم تقييمه قبل تحويله إلى سلسلة. خدمة الكائن {"message": "Hello json"} كاستجابة في تنسيق JSON ، إلى طلبات GET إلى المسار /json . ثم أشر المتصفح الخاص بك إلى التطبيق الخاص بك-رابط / json ، يجب أن تشاهد الرسالة على الشاشة.

Instructions

Tests

tests:
  - text: "يجب أن تخدم نقطة النهاية <code>/json</code> كائن json <code>{'message': 'Hello json'}</code> "
    testString: 'getUserInput => $.get(getUserInput(''url'') + ''/json'').then(data => { assert.equal(data.message, ''Hello json'', ''The \''/json\'' endpoint does not serve the right data''); }, xhr => { throw new Error(xhr.responseText); })'

Challenge Seed

Solution

// solution required