1
00:00:03,940 --> 00:00:08,444
في هذه الوحدة في الدرس الأول،

2
00:00:08,444 --> 00:00:14,115
تعلمنا كيفية بناء خادم REST API كامل باستخدام express.

3
00:00:14,115 --> 00:00:17,120
لذلك نحن قادرون على خدمة

4
00:00:17,120 --> 00:00:22,185
طلبات GET و PUT و POST و DELETE القادمة إلى مختلف نقاط نهاية API REST.

5
00:00:22,185 --> 00:00:24,975
ولكن، الخادم نفسه كان ببساطة يعيد

6
00:00:24,975 --> 00:00:29,115
رسالة بسيطة استجابة لهذه الطلبات.

7
00:00:29,115 --> 00:00:32,778
في خادم REST API الحقيقي،

8
00:00:32,778 --> 00:00:39,620
سيستتبع أي طلب وارد عملية مقابلة ليتم تنفيذها على الجزء الخلفي في

9
00:00:39,620 --> 00:00:46,610
قاعدة البيانات ربما لاسترداد البيانات للرد على طلب GET،

10
00:00:46,610 --> 00:00:52,430
أو ربما لتعديل البيانات الموجودة على الخادم استجابة لطلب PUT.

11
00:00:52,430 --> 00:00:56,270
الآن في بقية هذه الوحدة،

12
00:00:56,270 --> 00:01:03,465
درسنا كيف يمكننا التفاعل من تطبيق عقدة مع خادم MongoDB،

13
00:01:03,465 --> 00:01:10,500
سواء كان ذلك باستخدام برنامج تشغيل MongoDB أو باستخدام Mongoose.

14
00:01:10,500 --> 00:01:15,600
الآن، لن يكون خادم REST API الكامل القادر

15
00:01:15,600 --> 00:01:21,468
على التعامل مع نهاية الطلب إلى النهاية ممكنًا إلا عندما ندمج الاثنين معًا.

16
00:01:21,468 --> 00:01:24,840
بمعنى، خادم قائم على Express يقوم

17
00:01:24,840 --> 00:01:29,340
بجميع معالجة منطق الأعمال وفي الوقت نفسه سيصدر

18
00:01:29,340 --> 00:01:34,200
طلبات قاعدة البيانات إلى MongoDB

19
00:01:34,200 --> 00:01:40,790
باستخدام برنامج تشغيل MongoDB العقدة أو باستخدام Mongoose.

20
00:01:40,790 --> 00:01:42,780
إذن كيف نجمع بين الاثنين معاً؟

21
00:01:42,780 --> 00:01:47,040
إذن هذا ما سننظر إليه في هذا الدرس بالذات،

22
00:01:47,040 --> 00:01:51,230
والممارسين اللذين سنقوم بهما كجزء من هذا الدرس. لقد

23
00:01:51,230 --> 00:01:55,875
تعلمنا الآن كيفية

24
00:01:55,875 --> 00:01:59,400
إنشاء خادم REST API باستخدام Express

25
00:01:59,400 --> 00:02:03,950
وخدمة الطلبات المختلفة القادمة إلى نقاط نهاية API REST.

26
00:02:03,950 --> 00:02:10,765
لقد رأينا أيضا كيف يمكننا التفاعل مع قاعدة البيانات من تطبيق عقدة لدينا.

27
00:02:10,765 --> 00:02:17,280
الآن، بالنظر إلى أن لديك طلب GET قادم إلى الخادم كمثال،

28
00:02:17,280 --> 00:02:20,550
للتعامل مع طلب GET هذا من النهاية إلى النهاية،

29
00:02:20,550 --> 00:02:25,500
فإن طلب GET القادم من العميل يعني أن العميل يريد استرداد

30
00:02:25,500 --> 00:02:31,830
البيانات من الخادم واستخدام تلك البيانات.

31
00:02:31,830 --> 00:02:34,590
لذلك، يجب معالجة طلب GET الوارد إلى الخادم

32
00:02:34,590 --> 00:02:39,060
من خلال المعالجة المختلفة التي تقوم بها، على سبيل المثال،

33
00:02:39,060 --> 00:02:43,880
خادم Express وبمجرد الانتهاء من المعالجة،

34
00:02:43,880 --> 00:02:47,340
يدرك منطق عمل Express Server أنه يحتاج إلى

35
00:02:47,340 --> 00:02:51,166
إجراء عملية استعلام على قاعدة البيانات.

36
00:02:51,166 --> 00:02:54,630
لذلك، قد يبدأ هذا استعلام إلى قاعدة البيانات من أجل

37
00:02:54,630 --> 00:02:58,605
جلب مجموعة من المستندات من قاعدة البيانات،

38
00:02:58,605 --> 00:03:02,850
ومن ثم سيتم

39
00:03:02,850 --> 00:03:07,650
تحويل البيانات التي تم استردادها إلى رسالة رد ثم إرسالها مرة أخرى إلى الخادم.

40
00:03:07,650 --> 00:03:15,340
لذلك فإن هذا التعامل من طرف إلى طرف للطلب والاستجابة ينطوي على جزأين.

41
00:03:15,340 --> 00:03:18,060
واحد بالطبع القيام منطق الأعمال في

42
00:03:18,060 --> 00:03:23,070
خادم Express ثم القيام بالتفاعل مع

43
00:03:23,070 --> 00:03:27,270
قاعدة البيانات من تطبيق العقدة من خادم Express وهو

44
00:03:27,270 --> 00:03:32,580
تطبيق عقدة باستخدام برنامج تشغيل MongoDB أو Mongoose.

45
00:03:32,580 --> 00:03:36,190
سوف نستخدم النمس في التدريبات.

46
00:03:36,190 --> 00:03:42,005
وبالمثل، فإن طلب POST القادم إلى

47
00:03:42,005 --> 00:03:46,420
نقطة نهاية REST API على الخادم يعني أن

48
00:03:46,420 --> 00:03:51,330
طلب POST يجلب بعض البيانات في نص الرسالة.

49
00:03:51,330 --> 00:04:01,150
لذلك، يجب معالجة هذه المعلومات في خادم Express

50
00:04:01,150 --> 00:04:07,208
ويجب استرداد المعلومات التي تحتاج إلى تخزينها في قاعدة البيانات من نص طلب POST الوارد ومن ثم يجب

51
00:04:07,208 --> 00:04:11,380
إنشاء طلب إنشاء المقابلة

52
00:04:11,380 --> 00:04:17,590
أو البدء من خادم Express إلى قاعدة بيانات MongoDB

53
00:04:17,590 --> 00:04:22,330
، وفي طلب الإنشاء،

54
00:04:22,330 --> 00:04:25,870
سيتم إرسال المعلومات التي تم استردادها من نص طلب POST

55
00:04:25,870 --> 00:04:33,130
إلى قاعدة البيانات لإنشاء مستند جديد في مجموعة محددة في قاعدة البيانات.

56
00:04:33,130 --> 00:04:36,550
ثم سيتم إرسال نتيجة هذه العملية

57
00:04:36,550 --> 00:04:40,200
مرة أخرى إلى العميل في رسالة الرد.

58
00:04:40,200 --> 00:04:45,640
لذا، فإن أي عملية تتم على نقطة نهاية REST API سواء كانت عملية GET أو

59
00:04:45,640 --> 00:04:47,155
PUT أو POST

60
00:04:47,155 --> 00:04:48,951
أو DELETE،

61
00:04:48,951 --> 00:04:51,005
كما ترى من هذين المثالين،

62
00:04:51,005 --> 00:04:58,063
ستبدأ عملية قاعدة بيانات مقابلة خلف الكواليس.

63
00:04:58,063 --> 00:05:01,120
لذلك بعد فهم هذا التفاعل،

64
00:05:01,120 --> 00:05:05,590
ما ندركه هو أن طلب HTTP القادم إلى

65
00:05:05,590 --> 00:05:10,360
نقطة نهاية واجهة برمجة تطبيقات REST يجب أن يتم تعيينه في عملية قاعدة بيانات مقابلة.

66
00:05:10,360 --> 00:05:12,260
لذا فإن كل طلب وارد، أو GET أو PUT

67
00:05:12,260 --> 00:05:19,270
أو POST أو DELETE يعني أنه يمكن الوصول إلى مورد معين في قاعدة البيانات،

68
00:05:19,270 --> 00:05:23,530
أو يمكن استرجاعه أو يمكن

69
00:05:23,530 --> 00:05:28,360
استرداد مجموعة من الموارد من قاعدة البيانات ثم إرسالها مرة أخرى إلى الخادم،

70
00:05:28,360 --> 00:05:34,015
أو قد يتم تعديل مورد استجابة لـ PUT أو POST

71
00:05:34,015 --> 00:05:40,425
أو حتى طلب DELETE قادم إلى خادم REST API.

72
00:05:40,425 --> 00:05:44,170
لذلك الأمر متروك لمنطق خادم Express،

73
00:05:44,170 --> 00:05:47,545
منطق الأعمال المنفذ في خادم Express REST API،

74
00:05:47,545 --> 00:05:53,860
للتعامل مع هذه الترجمة للطلب الوارد سواء كان طلب GET أو

75
00:05:53,860 --> 00:05:58,765
PUT أو POST أو DELETE في عملية قاعدة البيانات المقابلة.

76
00:05:58,765 --> 00:06:03,085
لذلك دعونا ننظر إلى مثال على ذلك بمزيد من التفصيل.

77
00:06:03,085 --> 00:06:07,480
لذلك، القادمة إلى الجمع بين جهاز التوجيه Express بالإضافة إلى

78
00:06:07,480 --> 00:06:12,445
MongoDB بالإضافة إلى Mongoose بمثابة ODM بينهما،

79
00:06:12,445 --> 00:06:17,710
يجب أن تبدأ العمليات التي يتعين تنفيذها من قاعدة البيانات

80
00:06:17,710 --> 00:06:23,275
داخل جهاز التوجيه الذي بنيناه لكل نقطة نهاية REST API.

81
00:06:23,275 --> 00:06:24,310
حتى داخل جهاز التوجيه،

82
00:06:24,310 --> 00:06:26,740
حتى طريقة GET،

83
00:06:26,740 --> 00:06:28,615
PUT أو طريقة POST.

84
00:06:28,615 --> 00:06:35,440
الإجراء المقابل الذي يتعين تنفيذه على قاعدة البيانات سواء كان طلب GET

85
00:06:35,440 --> 00:06:39,940
مما يؤدي إلى تنفيذ طريقة العثور على أطباق أو

86
00:06:39,940 --> 00:06:44,235
طلب POST مما يتسبب

87
00:06:44,235 --> 00:06:48,595
في طريقة إنشاء أطباق ليتم تنفيذها، يجب أن يتم بواسطة خادم Express الخاص بنا مما يؤدي إلى

88
00:06:48,595 --> 00:06:53,285
العملية المقابلة بدأت على قاعدة بيانات MongoDB.

89
00:06:53,285 --> 00:06:55,555
لذلك مع هذا الفهم

90
00:06:55,555 --> 00:07:00,655
لكيفية ترجمة الطلبات إلى عمليات قاعدة بيانات المقابلة،

91
00:07:00,655 --> 00:07:06,720
دعونا ننتقل إلى التدريبين حيث سننظر في التعامل مع

92
00:07:06,720 --> 00:07:15,040
طلب GET و PUT و POST و DELETE القادم إلى /dished /: نقاط النهاية

93
00:07:15,040 --> 00:07:18,940
Dished وأيضًا لتعديل التعليقات الموجودة

94
00:07:18,940 --> 00:07:24,470
في الوثائق الفرعية المرفقة داخل وثيقة الطبق.