1
00:00:03,810 --> 00:00:05,895
في المحاضرة السابقة،

2
00:00:05,895 --> 00:00:07,880
تعلمنا عن REST API.

3
00:00:07,880 --> 00:00:10,781
لقد رأيت كيف

4
00:00:10,781 --> 00:00:14,990
تدعم نقاط نهاية REST API طريقة لتطبيق العميل ليتمكن إما من استرداد

5
00:00:14,990 --> 00:00:23,100
البيانات من الخادم أو تحميل البيانات إلى الخادم باستخدام عمليات HTTP المختلفة.

6
00:00:23,100 --> 00:00:27,062
في هذه المحاضرة والتمرين الذي يتبع هذه المحاضرة،

7
00:00:27,062 --> 00:00:30,985
سننظر تحديدًا في نوع الدعم الذي

8
00:00:30,985 --> 00:00:36,545
يدعمه Express لتصميم وتنفيذ خادم يستند إلى REST API. على

9
00:00:36,545 --> 00:00:40,085
وجه الخصوص، سننظر أيضًا في جهاز التوجيه Express،

10
00:00:40,085 --> 00:00:44,600
وكيف يمكننا من تقسيم تطبيقنا

11
00:00:44,600 --> 00:00:50,285
ثم تنظيمه إلى تطبيقات متعددة تشبه Express صغيرة،

12
00:00:50,285 --> 00:00:54,495
والتي تجمع معًا لتشكيل تطبيق Express،

13
00:00:54,495 --> 00:01:00,605
وتحديدًا عندما نتعامل مع مختلف REST API و أجزاء.

14
00:01:00,605 --> 00:01:02,985
لذلك لتلخيص، في المحاضرة السابقة،

15
00:01:02,985 --> 00:01:06,315
درسنا REST بالتفصيل.

16
00:01:06,315 --> 00:01:10,560
نظرنا أيضًا في كيفية تحديد كل نقطة نهاية بواسطة URI،

17
00:01:10,560 --> 00:01:13,950
وكيف يمكننا تحديد العمليات المختلفة التي يجب القيام بها على

18
00:01:13,950 --> 00:01:18,295
كل نقطة نهاية باستخدام فعل HTTP المناسب أو

19
00:01:18,295 --> 00:01:20,880
GET أو PUT أو POST أو DELETE.

20
00:01:20,880 --> 00:01:22,560
الآن في هذه المحاضرة،

21
00:01:22,560 --> 00:01:29,530
سننظر في كيفية دعم Express لتطوير خادم REST API.

22
00:01:29,530 --> 00:01:35,070
سنلقي نظرة على دعم Express لمسائل مختلفة مثل app.all و

23
00:01:35,070 --> 00:01:38,335
app.get و put و post و الحذف،

24
00:01:38,335 --> 00:01:43,305
وكيف يمكن استخدام هذه الطرق لإنشاء خادم REST API.

25
00:01:43,305 --> 00:01:50,104
ضمن Express، يمكن تعريف مجموعات التطبيقات المختلفة باستخدام التطبيق.

26
00:01:50,104 --> 00:01:51,955
و الأساليب المختلفة.

27
00:01:51,955 --> 00:01:59,180
لذلك، يحدد app.all العملية التي يجب القيام بها على جميع الأفعال المختلفة،

28
00:01:59,180 --> 00:02:00,990
على، في، وجزء.

29
00:02:00,990 --> 00:02:04,050
على سبيل المثال، في هذا المثال،

30
00:02:04,050 --> 00:02:07,970
نرى أن نقطة النهاية يتم تعريفها بواسطة/أطباق،

31
00:02:07,970 --> 00:02:13,230
وبالتالي

32
00:02:13,230 --> 00:02:16,830
سيتم تطبيق app.all، كل ما هو محدد في الدالة التي يتم تقديمها لـ app.all، على جميع الطلبات الواردة.

33
00:02:16,830 --> 00:02:22,155
يحدد app.get ما يجب القيام به لطلبات GET، وفي

34
00:02:22,155 --> 00:02:24,233
المقابل، لطلبات POST و

35
00:02:24,233 --> 00:02:30,015
PUT و DELETE التي يتم إرسالها إلى نقطة النهاية /dayses،

36
00:02:30,015 --> 00:02:32,700
كما هو موضح في هذا المثال.

37
00:02:32,700 --> 00:02:39,471
يدعم Express أيضًا تحديد نقاط النهاية بالمعلمات.

38
00:02:39,471 --> 00:02:45,750
على سبيل المثال، يمكنك تحديد معرف طبق معين إذا كنت ترغب في ذلك،

39
00:02:45,750 --> 00:02:49,500
ومن ثم السماح بإجراء العملية

40
00:02:49,500 --> 00:02:55,320
لنقطة النهاية المحددة التي تشير إلى ذلك الطبق المحدد مع معرف طبق معين.

41
00:02:55,320 --> 00:02:58,890
لذلك في هذه الحالة، يتم

42
00:02:58,890 --> 00:03:03,706
تحديد معرف الطبق نفسه كمعلمة والنمط المستخدم لذلك هو،

43
00:03:03,706 --> 00:03:05,460
كما ترون في هذا المثال،

44
00:03:05,460 --> 00:03:11,920
/أطباق/: ثم يمكنك تحديد المعلمة هنا.

45
00:03:11,920 --> 00:03:14,310
لجعل من السهل بالنسبة لنا أن نفهم،

46
00:03:14,310 --> 00:03:18,060
سميت المعلمة كما ديشيد في هناك.

47
00:03:18,060 --> 00:03:22,035
يمكنك استخدام أي اسم معلمة تختاره، ولكن مرة أخرى، فإن

48
00:03:22,035 --> 00:03:27,290
استخدام اسم ذي معنى لمعلمة يجعل من الأسهل فهم الشفرة.

49
00:03:27,290 --> 00:03:28,815
لذلك في هذا المثال، فإن

50
00:03:28,815 --> 00:03:34,058
:

51
00:03:34,058 --> 00:03:38,400
Dishid يعني أنه إذا قمنا بإصدار طلب إلى نقطة نهاية، على سبيل المثال، /dished /23،

52
00:03:38,400 --> 00:03:45,300
فإن المعلمة DisHid تمكننا من استخراج هذا الرقم 23 حتى

53
00:03:45,300 --> 00:03:48,420
نتمكن من العمل على الطبق رقم 23 داخل

54
00:03:48,420 --> 00:03:52,496
الوظيفة المحددة داخل هذه الطريقة هنا.

55
00:03:52,496 --> 00:03:55,190
حتى في هناك، المعلمة، المعلمة

56
00:03:55,190 --> 00:04:01,440
DisHid نفسها يمكن الحصول عليها باستخدام كائن الطلب الذي خاصية

57
00:04:01,440 --> 00:04:04,020
params التي تدعمها وخاصية

58
00:04:04,020 --> 00:04:08,885
params تدعم جميع معلمات الطلب الواردة،

59
00:04:08,885 --> 00:04:10,470
و DisHid، على وجه الخصوص،

60
00:04:10,470 --> 00:04:13,710
هي واحدة من معلمات الطلب التي يمكن الوصول إليها،

61
00:04:13,710 --> 00:04:16,271
كما هو موضح في التعليمات البرمجية هنا.

62
00:04:16,271 --> 00:04:22,585
عند إرسال طلب PUT أو POST من العميل إلى الخادم،

63
00:04:22,585 --> 00:04:28,545
غالبًا ما تقوم بإرفاق البيانات الموجودة في نص الرسالة التي يتم إرسالها إلى الخادم.

64
00:04:28,545 --> 00:04:31,110
الآن، مما يعني أننا بحاجة إلى طريقة

65
00:04:31,110 --> 00:04:34,230
لاستخراج المعلومات من نص الرسالة.

66
00:04:34,230 --> 00:04:39,320
لذلك هذا هو المكان الذي تكون فيه الوسيطة محلل الجسم لـ Express مفيدة للغاية.

67
00:04:39,320 --> 00:04:44,805
وبالتالي فإن محلل الجسم تمكننا من تحليل المعلومات من نص الرسالة.

68
00:04:44,805 --> 00:04:47,515
لاستخدام محلل الجسم، كما نتوقع،

69
00:04:47,515 --> 00:04:52,155
سنقوم بتثبيت وحدة عقدة محلل الجسم،

70
00:04:52,155 --> 00:04:56,070
ومن ثم نطلب ذلك داخل تطبيق Express الخاص بنا، ومن

71
00:04:56,070 --> 00:04:59,550
ثم تحديد app.use (BodyParser).

72
00:04:59,550 --> 00:05:03,570
وإذا كان الجسم يحتوي على بيانات بتنسيق JSON،

73
00:05:03,570 --> 00:05:05,810
فيمكنك أن تقول bodyParser.Json،

74
00:05:05,810 --> 00:05:09,561
مما يعني أن هذا سيؤدي إلى تحليل البيانات فقط

75
00:05:09,561 --> 00:05:14,250
بتنسيق JSON الموجود في نص رسالة الطلب هذه. على

76
00:05:14,250 --> 00:05:16,145
وجه الخصوص، في التمرين،

77
00:05:16,145 --> 00:05:22,620
سنقوم بتحليل البيانات الواردة التي يتم إرسالها في شكل سلسلة JSON.

78
00:05:22,620 --> 00:05:24,930
محلل النص الأساسي، كما تتوقع،

79
00:05:24,930 --> 00:05:30,480
يوزع نص الرسالة ويملأ الخاصية req.body.

80
00:05:30,480 --> 00:05:32,190
لذلك، بناء على الطلب،

81
00:05:32,190 --> 00:05:36,250
ستحتوي خاصية الجسم على كل ما يتم تحليله من

82
00:05:36,250 --> 00:05:41,600
نص رسالة الطلب بواسطة محلل الجسم.

83
00:05:41,600 --> 00:05:45,030
إذا كنت تقوم بتطبيق تطبيق Express

84
00:05:45,030 --> 00:05:48,465
الذي يدعم نقاط النهاية متعددة لـ REST API،

85
00:05:48,465 --> 00:05:53,265
فمن المنطقي تقسيم الشفرة إلى

86
00:05:53,265 --> 00:05:59,520
وحدات متعددة ثم الاستفادة منها لإنشاء تطبيق Express الشامل.

87
00:05:59,520 --> 00:06:03,347
لذلك هذا حيث يأتي جهاز التوجيه Express لمساعدتنا.

88
00:06:03,347 --> 00:06:08,070
يحدد جهاز التوجيه Express العديد من تطبيقات Express،

89
00:06:08,070 --> 00:06:10,045
وضمن هذا العديد من تطبيقات Express

90
00:06:10,045 --> 00:06:11,480
، يمكنك، على سبيل المثال،

91
00:06:11,480 --> 00:06:16,550
التعامل مع نقطة نهاية REST API معينة بمزيد من التفصيل،

92
00:06:16,550 --> 00:06:20,215
أو نمط معين من نقطة نهاية REST API بمزيد من التفصيل.

93
00:06:20,215 --> 00:06:27,656
لذلك، على سبيل المثال، يمكننا تعريف dishRouter كما express.Router،

94
00:06:27,656 --> 00:06:32,450
ومن ثم يمكن dishRouter التعامل مع نقاط النهاية.

95
00:06:32,450 --> 00:06:35,420
لذلك عند التعبير عن شيء ما كما Express.Router،

96
00:06:35,420 --> 00:06:38,570
فإنه يدعم نقطة نهاية الطريق.

97
00:06:38,570 --> 00:06:41,015
أحد أسباب استخدام جهاز التوجيه Express،

98
00:06:41,015 --> 00:06:42,455
كما تدرك،

99
00:06:42,455 --> 00:06:45,470
هو أنه إذا استخدمنا

100
00:06:45,470 --> 00:06:47,142
أساليب GET و PUT و POST و DELETE القياسية،

101
00:06:47,142 --> 00:06:48,760
لكل واحدة من هذه الطرق،

102
00:06:48,760 --> 00:06:52,315
تحتاج إلى تحديد نقاط نهاية REST API بشكل صريح.

103
00:06:52,315 --> 00:06:55,130
ميزة واحدة لاستخدام جهاز التوجيه Express هو أنه إذا

104
00:06:55,130 --> 00:06:59,422
قلت router.Route ثم حدد نقطة النهاية،

105
00:06:59,422 --> 00:07:07,220
سيتم تطبيق نقطة النهاية هذه على جميع الطرق وجميع الأساليب المختلفة GET و PUT و POST

106
00:07:07,220 --> 00:07:11,060
و DELETE المتعلقة بالأفعال يمكن أن تكون بالسلاسل

107
00:07:11,060 --> 00:07:16,575
معا في المسار في تعريف التعليمات البرمجية للحصول على طلبنا.

108
00:07:16,575 --> 00:07:22,075
سنلقي نظرة على مزيد من التفاصيل حول هذا الموضوع في التمرين الذي يتبع هذه المحاضرة.

109
00:07:22,075 --> 00:07:27,505
مع هذا الفهم السريع لكيفية دعم Express لنقطة نهاية REST API،

110
00:07:27,505 --> 00:07:31,070
دعنا ننتقل إلى التمرين حيث سنقوم ببناء

111
00:07:31,070 --> 00:07:35,682
دعمهم لنقطة النهاية REST API.

112
00:07:35,682 --> 00:07:38,180
كجزء من المهمة الأولى،

113
00:07:38,180 --> 00:07:40,160
ستقوم بتوسيع

114
00:07:40,160 --> 00:07:44,559
تطبيق Express هذا لدعم نقاط النهاية الإضافية لـ REST API،

115
00:07:44,559 --> 00:07:48,990
بما في ذلك /الترقيات و /القادة.

116
00:07:48,990 --> 00:07:52,040
إذا كنت قد أخذت الدورات السابقة في التخصص،

117
00:07:52,040 --> 00:07:55,220
فستبدأ على الفور في معرفة سبب دعمنا

118
00:07:55,220 --> 00:08:00,810
لجميع نقاط نهاية REST API المختلفة هذه على جانب الخادم الآخر.