1
00:00:03,810 --> 00:00:05,895
Trong bài giảng trước,

2
00:00:05,895 --> 00:00:07,880
chúng tôi đã tìm hiểu về REST API.

3
00:00:07,880 --> 00:00:10,781
Bạn đã thấy cách các điểm cuối API REST

4
00:00:10,781 --> 00:00:14,990
hỗ trợ một cách cho một ứng dụng khách có thể truy xuất

5
00:00:14,990 --> 00:00:23,100
dữ liệu từ máy chủ hoặc tải dữ liệu lên máy chủ bằng cách sử dụng các thao tác HTTP khác nhau.

6
00:00:23,100 --> 00:00:27,062
Trong bài giảng này và bài tập sau bài giảng này,

7
00:00:27,062 --> 00:00:30,985
chúng tôi sẽ xem xét cụ thể về loại hỗ trợ Express

8
00:00:30,985 --> 00:00:36,545
hỗ trợ để thiết kế và triển khai một máy chủ dựa trên REST API.

9
00:00:36,545 --> 00:00:40,085
Đặc biệt, chúng tôi cũng sẽ xem xét bộ định tuyến Express,

10
00:00:40,085 --> 00:00:44,600
và làm thế nào nó cho phép chúng tôi chia nhỏ ứng dụng của chúng tôi và

11
00:00:44,600 --> 00:00:50,285
sau đó tổ chức nó thành nhiều ứng dụng giống như Express nhỏ,

12
00:00:50,285 --> 00:00:54,495
kết hợp với nhau để tạo thành ứng dụng Express,

13
00:00:54,495 --> 00:01:00,605
đặc biệt khi chúng tôi đang đối phó với các API REST khác nhau và các bộ phận.

14
00:01:00,605 --> 00:01:02,985
Vì vậy, để tóm tắt, trong bài giảng trước đó,

15
00:01:02,985 --> 00:01:06,315
chúng tôi đã kiểm tra REST một cách chi tiết.

16
00:01:06,315 --> 00:01:10,560
Chúng tôi cũng xem xét cách mỗi điểm cuối được xác định bởi một URI,

17
00:01:10,560 --> 00:01:13,950
và làm thế nào chúng tôi có thể xác định các hoạt động khác nhau được thực hiện trên

18
00:01:13,950 --> 00:01:18,295
mỗi điểm cuối bằng cách sử dụng động từ HTTP thích hợp,

19
00:01:18,295 --> 00:01:20,880
GET, PUT, POST, hoặc DELETE.

20
00:01:20,880 --> 00:01:22,560
Bây giờ trong bài giảng này,

21
00:01:22,560 --> 00:01:29,530
chúng ta sẽ xem xét cách Express hỗ trợ sự phát triển của một máy chủ REST API.

22
00:01:29,530 --> 00:01:35,070
Chúng ta sẽ xem xét sự hỗ trợ của Express cho các vấn đề khác nhau như app.all,

23
00:01:35,070 --> 00:01:38,335
app.get, put, post và delete,

24
00:01:38,335 --> 00:01:43,305
và cách các phương pháp này có thể được sử dụng để xây dựng một máy chủ REST API.

25
00:01:43,305 --> 00:01:50,104
Trong Express, các nhóm ứng dụng khác nhau có thể được xác định bằng cách sử dụng, ứng dụng.

26
00:01:50,104 --> 00:01:51,955
và các phương pháp khác nhau.

27
00:01:51,955 --> 00:01:59,180
Vì vậy, app.all chỉ định một thao tác cần được thực hiện trên tất cả các động từ khác nhau,

28
00:01:59,180 --> 00:02:00,990
trên, trong và một phần.

29
00:02:00,990 --> 00:02:04,050
Ví dụ, trong ví dụ này,

30
00:02:04,050 --> 00:02:07,970
chúng ta thấy rằng điểm cuối được định nghĩa bởi /dishes,

31
00:02:07,970 --> 00:02:13,230
và vì vậy app.all, bất cứ điều gì được chỉ định trong chức năng được đưa ra cho app.all,

32
00:02:13,230 --> 00:02:16,830
sẽ được áp dụng cho tất cả các yêu cầu đến.

33
00:02:16,830 --> 00:02:22,155
app.get xác định những gì cần phải được thực hiện cho các yêu cầu GET và,

34
00:02:22,155 --> 00:02:24,233
tương ứng, cho các

35
00:02:24,233 --> 00:02:30,015
yêu cầu POST, PUT và DELETE được gửi đến điểm cuối /dishes,

36
00:02:30,015 --> 00:02:32,700
như minh họa trong ví dụ này.

37
00:02:32,700 --> 00:02:39,471
Express cũng hỗ trợ xác định các điểm cuối với các tham số.

38
00:02:39,471 --> 00:02:45,750
Vì vậy, ví dụ, bạn có thể chỉ định một ID món ăn cụ thể nếu bạn muốn,

39
00:02:45,750 --> 00:02:49,500
và sau đó cho phép thao tác được thực hiện cho

40
00:02:49,500 --> 00:02:55,320
điểm cuối cụ thể đề cập đến món ăn cụ thể đó với một ID món ăn nhất định.

41
00:02:55,320 --> 00:02:58,890
Vì vậy, trong trường hợp này, bản thân món ăn ID được

42
00:02:58,890 --> 00:03:03,706
chỉ định như là một tham số và mẫu được sử dụng cho đó là,

43
00:03:03,706 --> 00:03:05,460
như bạn thấy trong ví dụ này,

44
00:03:05,460 --> 00:03:11,920
/dishes/: và sau đó bạn sẽ chỉ định tham số ở đây.

45
00:03:11,920 --> 00:03:14,310
Để làm cho nó dễ dàng cho chúng ta để hiểu,

46
00:03:14,310 --> 00:03:18,060
tôi đặt tên tham số là DisHid trong đó.

47
00:03:18,060 --> 00:03:22,035
Bạn có thể sử dụng bất kỳ tên tham số nào mà bạn chọn để, nhưng một lần nữa,

48
00:03:22,035 --> 00:03:27,290
sử dụng một tên có ý nghĩa cho một tham số làm cho nó dễ dàng hơn để hiểu mã.

49
00:03:27,290 --> 00:03:28,815
Vì vậy, trong ví dụ này,

50
00:03:28,815 --> 00:03:34,058
các:DISHID có nghĩa là nếu chúng ta phát hành một yêu cầu đến một điểm cuối

51
00:03:34,058 --> 00:03:38,400
, nói ví dụ, /dishes/23,

52
00:03:38,400 --> 00:03:45,300
sau đó các tham số DisHID cho phép chúng ta trích xuất số này 23 để chúng ta

53
00:03:45,300 --> 00:03:48,420
có thể hoạt động trên món ăn số 23

54
00:03:48,420 --> 00:03:52,496
trong chức năng được quy định bên trong phương pháp này ở đây.

55
00:03:52,496 --> 00:03:55,190
Vì vậy, trong đó, tham số, tham số

56
00:03:55,190 --> 00:04:01,440
DisHid chính nó có thể được thu được bằng cách sử dụng đối tượng yêu cầu mà trên đó

57
00:04:01,440 --> 00:04:04,020
thuộc tính params bạn hỗ trợ và

58
00:04:04,020 --> 00:04:08,885
thuộc tính params hỗ trợ tất cả các tham số yêu cầu đến,

59
00:04:08,885 --> 00:04:10,470
và DisHid, đặc biệt,

60
00:04:10,470 --> 00:04:13,710
là một trong những tham số yêu cầu mà có thể được truy cập,

61
00:04:13,710 --> 00:04:16,271
như thể hiện trong mã ở đây.

62
00:04:16,271 --> 00:04:22,585
Khi bạn gửi một PUT hoặc một yêu cầu POST từ máy khách đến máy chủ,

63
00:04:22,585 --> 00:04:28,545
bạn thường kèm theo dữ liệu trong nội dung của thư được gửi đến máy chủ.

64
00:04:28,545 --> 00:04:31,110
Bây giờ, điều đó có nghĩa là chúng ta cần một

65
00:04:31,110 --> 00:04:34,230
phương pháp trích xuất thông tin từ nội dung của thông điệp.

66
00:04:34,230 --> 00:04:39,320
Vì vậy, đây là nơi phân tích cú pháp cơ thể middleware cho Express là rất hữu ích.

67
00:04:39,320 --> 00:04:44,805
Vì vậy, bộ phân tích cơ thể cho phép chúng ta phân tích các thông tin từ cơ thể của thông điệp.

68
00:04:44,805 --> 00:04:47,515
Để sử dụng bộ phân tích cú pháp cơ thể, như chúng ta mong đợi,

69
00:04:47,515 --> 00:04:52,155
chúng tôi sẽ cài đặt mô-đun nút phân tích cú pháp cơ thể,

70
00:04:52,155 --> 00:04:56,070
và sau đó yêu cầu nó trong ứng dụng Express của chúng tôi,

71
00:04:56,070 --> 00:04:59,550
và sau đó chỉ định app.use (BodyParser).

72
00:04:59,550 --> 00:05:03,570
Và nếu cơ thể chứa dữ liệu ở định dạng JSON,

73
00:05:03,570 --> 00:05:05,810
bạn có thể nói BodyParser.json,

74
00:05:05,810 --> 00:05:09,561
do đó, điều đó có nghĩa là điều này sẽ phân tích chỉ dữ liệu ở

75
00:05:09,561 --> 00:05:14,250
định dạng JSON được kèm theo trong nội dung của thông điệp yêu cầu đó.

76
00:05:14,250 --> 00:05:16,145
Đặc biệt, trong bài tập,

77
00:05:16,145 --> 00:05:22,620
chúng ta sẽ phân tích dữ liệu đến được gửi dưới dạng một chuỗi JSON.

78
00:05:22,620 --> 00:05:24,930
Phân tích cú pháp cơ thể, như bạn mong đợi,

79
00:05:24,930 --> 00:05:30,480
phân tích phần nội dung của thư và cư thuộc tính req.body.

80
00:05:30,480 --> 00:05:32,190
Vì vậy, theo yêu cầu,

81
00:05:32,190 --> 00:05:36,250
thuộc tính cơ thể sẽ chứa bất cứ điều gì được phân tích cú pháp trong từ

82
00:05:36,250 --> 00:05:41,600
cơ thể của thông điệp yêu cầu bởi bộ phân tích cơ thể.

83
00:05:41,600 --> 00:05:45,030
Nếu bạn đang thực hiện một ứng

84
00:05:45,030 --> 00:05:48,465
dụng Express hỗ trợ nhiều điểm cuối REST API,

85
00:05:48,465 --> 00:05:53,265
thì nó có ý nghĩa để chia nhỏ mã thành

86
00:05:53,265 --> 00:05:59,520
nhiều mô-đun và sau đó sử dụng chúng để xây dựng ứng dụng Express tổng thể.

87
00:05:59,520 --> 00:06:03,347
Vì vậy, nơi bộ định tuyến Express đến với sự trợ giúp của chúng tôi.

88
00:06:03,347 --> 00:06:08,070
Một bộ định tuyến Express định nghĩa nhiều ứng dụng Express,

89
00:06:08,070 --> 00:06:10,045
và trong đó nhiều ứng dụng Express,

90
00:06:10,045 --> 00:06:11,480
bạn có thể, ví dụ,

91
00:06:11,480 --> 00:06:16,550
đối phó với một điểm cuối REST API cụ thể chi tiết hơn,

92
00:06:16,550 --> 00:06:20,215
hoặc một mô hình cụ thể của điểm cuối REST API chi tiết hơn.

93
00:06:20,215 --> 00:06:27,656
Vì vậy, ví dụ, chúng ta có thể xác định một DishRouter như Express.Router,

94
00:06:27,656 --> 00:06:32,450
và sau đó DishRouter sau đó có thể xử lý các điểm cuối.

95
00:06:32,450 --> 00:06:35,420
Vì vậy, khi bạn thể hiện một cái gì đó như Express.Router,

96
00:06:35,420 --> 00:06:38,570
nó hỗ trợ điểm cuối tuyến đường.

97
00:06:38,570 --> 00:06:41,015
Một trong những lý do để sử dụng Express router,

98
00:06:41,015 --> 00:06:42,455
như bạn sẽ nhận ra,

99
00:06:42,455 --> 00:06:45,470
là nếu chúng ta sử dụng các

100
00:06:45,470 --> 00:06:47,142
phương pháp GET, PUT, POST và DELETE ứng dụng chuẩn,

101
00:06:47,142 --> 00:06:48,760
cho mỗi một trong những phương pháp này,

102
00:06:48,760 --> 00:06:52,315
bạn cần phải xác định rõ ràng điểm cuối REST API.

103
00:06:52,315 --> 00:06:55,130
Một lợi thế của việc sử dụng bộ định tuyến Express là nếu bạn

104
00:06:55,130 --> 00:06:59,422
nói Router.route và sau đó xác định điểm cuối, điểm cuối

105
00:06:59,422 --> 00:07:07,220
đó sẽ được áp dụng cho tất cả các phương pháp và tất cả các

106
00:07:07,220 --> 00:07:11,060
phương pháp liên quan đến GET, PUT, POST và DELETE khác nhau có thể được xích lại

107
00:07:11,060 --> 00:07:16,575
với nhau vào các tuyến đường trong việc xác định mã cho ứng dụng của chúng tôi.

108
00:07:16,575 --> 00:07:22,075
Chúng ta sẽ xem xét thêm chi tiết về điều này trong bài tập sau bài giảng này.

109
00:07:22,075 --> 00:07:27,505
Với sự hiểu biết nhanh chóng này về cách Express hỗ trợ REST API điểm cuối, chúng ta

110
00:07:27,505 --> 00:07:31,070
hãy chuyển sang bài tập nơi chúng tôi sẽ xây dựng

111
00:07:31,070 --> 00:07:35,682
hỗ trợ của họ cho /dishes REST API điểm cuối.

112
00:07:35,682 --> 00:07:38,180
Là một phần của nhiệm vụ đầu tiên,

113
00:07:38,180 --> 00:07:40,160
bạn sẽ tiếp tục mở rộng

114
00:07:40,160 --> 00:07:44,559
ứng dụng Express này để hỗ trợ các điểm cuối API REST bổ sung,

115
00:07:44,559 --> 00:07:48,990
bao gồm /promotions và /leaders.

116
00:07:48,990 --> 00:07:52,040
Nếu bạn đã thực hiện các khóa học trước đó trong chuyên môn hóa,

117
00:07:52,040 --> 00:07:55,220
bạn sẽ ngay lập tức bắt đầu xem lý do tại sao chúng tôi đang hỗ trợ

118
00:07:55,220 --> 00:08:00,810
tất cả các điểm cuối REST API khác nhau ở phía máy chủ khác.