1
00:00:03,810 --> 00:00:05,895
In der vorherigen Vorlesung

2
00:00:05,895 --> 00:00:07,880
haben wir etwas über REST-API erfahren.

3
00:00:07,880 --> 00:00:10,781
Sie haben gesehen, wie die REST-API-Endpunkte

4
00:00:10,781 --> 00:00:14,990
eine Möglichkeit unterstützen, eine Clientanwendung entweder

5
00:00:14,990 --> 00:00:23,100
Daten vom Server abrufen oder Daten mithilfe der verschiedenen HTTP-Vorgänge auf den Server hochladen zu können.

6
00:00:23,100 --> 00:00:27,062
In dieser Vorlesung und Übung, die dieser Vorlesung folgt,

7
00:00:27,062 --> 00:00:30,985
werden wir speziell darüber nachdenken, welche Art von Unterstützung Express

8
00:00:30,985 --> 00:00:36,545
für das Entwerfen und Implementieren eines REST API-basierten Servers unterstützt.

9
00:00:36,545 --> 00:00:40,085
Insbesondere werden wir uns auch den Express-Router ansehen

10
00:00:40,085 --> 00:00:44,600
und wie er es uns ermöglicht, unsere Anwendung zu unterteilen und

11
00:00:44,600 --> 00:00:50,285
sie dann in mehrere Mini-Express-ähnliche Anwendungen zu organisieren,

12
00:00:50,285 --> 00:00:54,495
die

13
00:00:54,495 --> 00:01:00,605
sich zu der Express-Anwendung zusammenfügen, insbesondere wenn wir es mit verschiedenen REST-API und -Teile.

14
00:01:00,605 --> 00:01:02,985
Um zusammenzufassen,

15
00:01:02,985 --> 00:01:06,315
haben wir in der vorherigen Vorlesung REST im Detail untersucht.

16
00:01:06,315 --> 00:01:10,560
Wir haben auch untersucht, wie jeder Endpunkt durch einen URI identifiziert wird,

17
00:01:10,560 --> 00:01:13,950
und wie wir die verschiedenen Operationen auf

18
00:01:13,950 --> 00:01:18,295
jedem Endpunkt mit dem entsprechenden HTTP-Verb,

19
00:01:18,295 --> 00:01:20,880
dem GET, PUT, POST oder DELETE, angeben können.

20
00:01:20,880 --> 00:01:22,560
In dieser Vorlesung

21
00:01:22,560 --> 00:01:29,530
werden wir uns nun ansehen, wie Express die Entwicklung eines REST API-Servers unterstützt.

22
00:01:29,530 --> 00:01:35,070
Wir betrachten die Unterstützung von Express für verschiedene Themen wie app.all,

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

24
00:01:38,335 --> 00:01:43,305
und wie diese Methoden verwendet werden können, um einen REST API-Server zu konstruieren.

25
00:01:43,305 --> 00:01:50,104
Innerhalb von Express können die verschiedenen Anwendungsgruppen mit der App, definiert werden.

26
00:01:50,104 --> 00:01:51,955
und die verschiedenen Methoden.

27
00:01:51,955 --> 00:01:59,180
Also, die app.all gibt eine Operation an, die für alle verschiedenen Verben durchgeführt werden muss,

28
00:01:59,180 --> 00:02:00,990
on, in und part.

29
00:02:00,990 --> 00:02:04,050
So

30
00:02:04,050 --> 00:02:07,970
sehen wir beispielsweise in diesem Beispiel, dass der Endpunkt durch /Gerichte definiert ist,

31
00:02:07,970 --> 00:02:13,230
und so wird app.all, was auch immer in der Funktion angegeben ist, die für app.all angegeben

32
00:02:13,230 --> 00:02:16,830
wird, auf alle eingehenden Anfragen angewendet.

33
00:02:16,830 --> 00:02:22,155
Die app.get gibt an, was für GET-Anfragen und

34
00:02:22,155 --> 00:02:24,233
entsprechend für die POST-,

35
00:02:24,233 --> 00:02:30,015
PUT- und DELETE-Anforderungen ausgeführt werden muss, die an den Endpunkt /dishens gesendet werden,

36
00:02:30,015 --> 00:02:32,700
wie in diesem Beispiel gezeigt.

37
00:02:32,700 --> 00:02:39,471
Express unterstützt auch das Definieren der Endpunkte mit Parametern.

38
00:02:39,471 --> 00:02:45,750
So können Sie beispielsweise eine bestimmte Schalen-ID angeben, wenn Sie möchten,

39
00:02:45,750 --> 00:02:49,500
und dann lassen Sie die Operation für

40
00:02:49,500 --> 00:02:55,320
diesen bestimmten Endpunkt durchgeführt werden, der sich auf dieses spezielle Gericht mit einer bestimmten Schalen-ID bezieht.

41
00:02:55,320 --> 00:02:58,890
In diesem Fall wird die Dish-ID selbst

42
00:02:58,890 --> 00:03:03,706
als Parameter angegeben, und das dafür verwendete Muster ist,

43
00:03:03,706 --> 00:03:05,460
wie Sie in diesem Beispiel sehen,

44
00:03:05,460 --> 00:03:11,920
/dishes/: und dann würden Sie den Parameter hier angeben.

45
00:03:11,920 --> 00:03:14,310
Um es uns leicht zu verstehen,

46
00:03:14,310 --> 00:03:18,060
nannte ich den Parameter als DishID da drin.

47
00:03:18,060 --> 00:03:22,035
Sie können jeden Parameternamen verwenden, den Sie auswählen, aber die

48
00:03:22,035 --> 00:03:27,290
Verwendung eines aussagekräftigen Namens für einen Parameter erleichtert das Verständnis des Codes.

49
00:03:27,290 --> 00:03:28,815
In diesem Beispiel

50
00:03:28,815 --> 00:03:34,058
bedeutet der:dishid, dass, wenn wir eine Anfrage an einen Endpunkt ausgeben,

51
00:03:34,058 --> 00:03:38,400
sagen wir zum Beispiel /dishes/23,

52
00:03:38,400 --> 00:03:45,300
dann der disHid Parameter ermöglicht es uns, diese Zahl 23 zu extrahieren, so dass wir

53
00:03:45,300 --> 00:03:48,420
auf Gericht Nummer 23 innerhalb

54
00:03:48,420 --> 00:03:52,496
der Funktion arbeiten können, die innerhalb dieser Methode hier angegeben ist.

55
00:03:52,496 --> 00:03:55,190
Dort

56
00:03:55,190 --> 00:04:01,440
kann der Parameter, der disHid Parameter selbst erhalten werden, indem das Anforderungsobjekt verwendet wird, auf dem

57
00:04:01,440 --> 00:04:04,020
die params Eigenschaft unterstützt, die Sie unterstützt haben, und

58
00:04:04,020 --> 00:04:08,885
die params Eigenschaft unterstützt alle eingehenden Anforderungsparameter

59
00:04:08,885 --> 00:04:10,470
, und insbesondere disHid

60
00:04:10,470 --> 00:04:13,710
ist einer dieser Anforderungsparameter, die kann zugegriffen werden,

61
00:04:13,710 --> 00:04:16,271
wie im Code hier gezeigt.

62
00:04:16,271 --> 00:04:22,585
Wenn Sie eine PUT- oder POST-Anforderung vom Client an den Server senden,

63
00:04:22,585 --> 00:04:28,545
schließen Sie die Daten häufig in den Hauptteil der Nachricht ein, die an den Server gesendet wird.

64
00:04:28,545 --> 00:04:31,110
Nun, was bedeutet, dass wir eine Methode benötigen, um

65
00:04:31,110 --> 00:04:34,230
Informationen aus dem Textkörper der Nachricht zu extrahieren.

66
00:04:34,230 --> 00:04:39,320
Dies ist also, wo die Body Parser Middleware für Express sehr nützlich ist.

67
00:04:39,320 --> 00:04:44,805
Der Body Parser ermöglicht es uns, die Informationen aus dem Hauptteil der Nachricht zu analysieren.

68
00:04:44,805 --> 00:04:47,515
Um den Body-Parser zu verwenden, wie wir es erwarten

69
00:04:47,515 --> 00:04:52,155
würden, würden wir das Body-Parser Knotenmodul installieren

70
00:04:52,155 --> 00:04:56,070
und es dann innerhalb unserer Express-Anwendung benötigen

71
00:04:56,070 --> 00:04:59,550
und dann app.use (BodyParser) angeben.

72
00:04:59,550 --> 00:05:03,570
Und wenn der Körper Daten im JSON-Format enthält,

73
00:05:03,570 --> 00:05:05,810
können Sie bodyParser.json sagen,

74
00:05:05,810 --> 00:05:09,561
was bedeutet, dass dies nur Daten im

75
00:05:09,561 --> 00:05:14,250
JSON-Format analysiert, die im Text dieser Anforderungsnachricht eingeschlossen sind.

76
00:05:14,250 --> 00:05:16,145
Insbesondere

77
00:05:16,145 --> 00:05:22,620
werden wir in der Übung eingehende Daten analysieren, die in Form einer JSON-Zeichenfolge gesendet werden.

78
00:05:22,620 --> 00:05:24,930
Der Body-Parser analysiert, wie Sie es erwarten würden,

79
00:05:24,930 --> 00:05:30,480
den Nachrichtentext und füllt die req.body -Eigenschaft.

80
00:05:30,480 --> 00:05:32,190
Also, auf der Anfrage,

81
00:05:32,190 --> 00:05:36,250
die body-Eigenschaft enthält, was aus dem

82
00:05:36,250 --> 00:05:41,600
Körper der Anforderungsnachricht durch Bodyparser analysiert wird.

83
00:05:41,600 --> 00:05:45,030
Wenn Sie eine Express-Anwendung implementieren,

84
00:05:45,030 --> 00:05:48,465
die mehrere REST-API-Endpunkte unterstützt,

85
00:05:48,465 --> 00:05:53,265
ist es sinnvoll, den Code in

86
00:05:53,265 --> 00:05:59,520
mehrere Module zu unterteilen und diese dann für die Erstellung der gesamten Express-Anwendung zu verwenden.

87
00:05:59,520 --> 00:06:03,347
Hier kommt uns der Express-Router zu Hilfe.

88
00:06:03,347 --> 00:06:08,070
Ein Express-Router definiert viele Express-Anwendungen,

89
00:06:08,070 --> 00:06:10,045
und innerhalb dieser vielen Express-Anwendungen

90
00:06:10,045 --> 00:06:11,480
können Sie beispielsweise

91
00:06:11,480 --> 00:06:16,550
mit einem bestimmten REST-API-Endpunkt

92
00:06:16,550 --> 00:06:20,215
oder einem bestimmten Muster des REST-API-Endpunkts detaillierter umgehen.

93
00:06:20,215 --> 00:06:27,656
So können wir zum Beispiel einen DishRouter als express.Router definieren,

94
00:06:27,656 --> 00:06:32,450
und dann kann der DishRouter dann die Endpunkte behandeln.

95
00:06:32,450 --> 00:06:35,420
Wenn Sie also etwas als Express.Router ausdrücken,

96
00:06:35,420 --> 00:06:38,570
unterstützt es den Routenendpunkt.

97
00:06:38,570 --> 00:06:42,455
Einer der Gründe für die Verwendung des Express-Routers

98
00:06:42,455 --> 00:06:45,470
ist, wie Sie feststellen würden, dass Sie, wenn wir die Standard-App GET,

99
00:06:45,470 --> 00:06:47,142
PUT, POST und DELETE Methoden verwenden,

100
00:06:47,142 --> 00:06:48,760
für jede dieser Methoden

101
00:06:48,760 --> 00:06:52,315
explizit die REST-API-Endpunkte angeben müssen.

102
00:06:52,315 --> 00:06:55,130
Ein Vorteil der Verwendung von Express-Router besteht darin, dass, wenn Sie

103
00:06:55,130 --> 00:06:59,422
den Router.ROUTE sagen und dann den

104
00:06:59,422 --> 00:07:07,220
Endpunkt angeben, dieser Endpunkt auf alle Methoden angewendet wird und alle verschiedenen GET, PUT, POST

105
00:07:07,220 --> 00:07:11,060
und DELETE verb-bezogenen Methoden alle

106
00:07:11,060 --> 00:07:16,575
zusammen in die Route verkettet werden können, um den Code zu definieren für unsere Anwendung.

107
00:07:16,575 --> 00:07:22,075
In der Übung, die dieser Vorlesung folgt, werden wir weitere Details dazu betrachten.

108
00:07:22,075 --> 00:07:27,505
Mit diesem schnellen Verständnis, wie Express REST-API-Endpunkt unterstützt,

109
00:07:27,505 --> 00:07:31,070
gehen wir zu der Übung über, in der wir

110
00:07:31,070 --> 00:07:35,682
ihre Unterstützung für den /dishs-REST-API-Endpunkt konstruieren werden.

111
00:07:35,682 --> 00:07:38,180
Im Rahmen der ersten Zuweisung

112
00:07:38,180 --> 00:07:40,160
werden Sie

113
00:07:40,160 --> 00:07:44,559
diese Express-Anwendung weiter erweitern, um zusätzliche REST-API-Endpunkte zu unterstützen,

114
00:07:44,559 --> 00:07:48,990
einschließlich /promotions und /leader.

115
00:07:48,990 --> 00:07:52,040
Wenn Sie die vorherigen Kurse in der Spezialisierung besucht haben,

116
00:07:52,040 --> 00:07:55,220
werden Sie sofort beginnen zu sehen, warum wir

117
00:07:55,220 --> 00:08:00,810
alle diese verschiedenen REST-API-Endpunkte auf anderen Serverseite unterstützen.