1
00:00:03,940 --> 00:00:08,444
Dans ce module de la toute première leçon,

2
00:00:08,444 --> 00:00:14,115
nous avons appris comment construire un serveur API REST à part entière en utilisant express.

3
00:00:14,115 --> 00:00:17,120
Nous sommes donc en mesure de traiter les

4
00:00:17,120 --> 00:00:22,185
requêtes GET, PUT, POST et DELETE arrivant aux différents points de fin de l'API REST.

5
00:00:22,185 --> 00:00:24,975
Mais, le serveur lui-même retournait simplement

6
00:00:24,975 --> 00:00:29,115
un message simple en réponse à ces requêtes.

7
00:00:29,115 --> 00:00:32,778
Dans un serveur d'API REST réel,

8
00:00:32,778 --> 00:00:39,620
toute requête entrante impliquera une opération correspondante à effectuer à l'arrière dans

9
00:00:39,620 --> 00:00:46,610
la base de données, peut-être pour récupérer des données pour répondre à une requête GET,

10
00:00:46,610 --> 00:00:52,430
ou peut-être pour modifier des données qui existent sur le serveur en réponse à une requête PUT.

11
00:00:52,430 --> 00:00:56,270
Maintenant, dans le reste de ce module,

12
00:00:56,270 --> 00:01:03,465
nous avons étudié comment nous pouvons interagir à partir d'une application de nœud avec un serveur MongoDB,

13
00:01:03,465 --> 00:01:10,500
que ce soit en utilisant le pilote MongoDB ou en utilisant Mongoose.

14
00:01:10,500 --> 00:01:15,600
Maintenant, un serveur d'API REST à part entière capable de gérer

15
00:01:15,600 --> 00:01:21,468
la demande de bout en bout ne sera possible que lorsque nous combinons les deux ensemble.

16
00:01:21,468 --> 00:01:24,840
Autrement dit, un serveur basé sur Express qui effectue

17
00:01:24,840 --> 00:01:29,340
tout le traitement de la logique métier et en même temps émettra les

18
00:01:29,340 --> 00:01:34,200
demandes de base de données à la MongoDB

19
00:01:34,200 --> 00:01:40,790
en utilisant le pilote MongoDB de noeud ou en utilisant Mongoose.

20
00:01:40,790 --> 00:01:42,780
Alors, comment combinons-nous les deux ?

21
00:01:42,780 --> 00:01:47,040
Voilà donc ce que nous examinerons dans cette leçon particulière

22
00:01:47,040 --> 00:01:51,230
et les deux exercices que nous ferons dans le cadre de cette leçon.

23
00:01:51,230 --> 00:01:55,875
Nous avons maintenant appris à construire

24
00:01:55,875 --> 00:01:59,400
un serveur API REST en utilisant Express

25
00:01:59,400 --> 00:02:03,950
et à traiter les différentes requêtes arrivant aux points de terminaison de l'API REST.

26
00:02:03,950 --> 00:02:10,765
Nous avons également vu comment nous pouvons interagir avec la base de données à partir de notre application de nœud.

27
00:02:10,765 --> 00:02:17,280
Maintenant, étant donné que vous avez une requête GET entrant dans le serveur

28
00:02:17,280 --> 00:02:20,550
à titre d'exemple, pour gérer cette requête

29
00:02:20,550 --> 00:02:25,500
GET bout en bout, une requête GET provenant du client signifie que le client veut récupérer

30
00:02:25,500 --> 00:02:31,830
des données du serveur et utiliser ces données.

31
00:02:31,830 --> 00:02:34,590
Ainsi, une requête GET entrant dans le serveur devra être

32
00:02:34,590 --> 00:02:39,060
traitée à travers les différents traitements effectués par, par exemple,

33
00:02:39,060 --> 00:02:43,880
le serveur Express et une fois le traitement terminé, la

34
00:02:43,880 --> 00:02:47,340
logique métier du serveur Express réalise qu'il doit

35
00:02:47,340 --> 00:02:51,166
effectuer une opération de requête sur la base de données.

36
00:02:51,166 --> 00:02:54,630
Ainsi, cela peut lancer une requête à la base de données afin d'

37
00:02:54,630 --> 00:02:58,605
extraire un ensemble de documents de la base de données,

38
00:02:58,605 --> 00:03:02,850
puis les données récupérées seront ensuite

39
00:03:02,850 --> 00:03:07,650
transformées en un message de réponse puis renvoyées au serveur.

40
00:03:07,650 --> 00:03:15,340
Ce traitement de bout en bout de la demande et de la réponse implique donc deux parties.

41
00:03:15,340 --> 00:03:18,060
Un bien sûr faire la logique métier dans

42
00:03:18,060 --> 00:03:23,070
le serveur Express, puis faire l'interaction avec la

43
00:03:23,070 --> 00:03:27,270
base de données à partir de l'application de nœud à partir du serveur Express qui est

44
00:03:27,270 --> 00:03:32,580
une application de nœud utilisant soit le pilote MongoDB ou Mongoose.

45
00:03:32,580 --> 00:03:36,190
Nous allons utiliser Mongoose dans les exercices.

46
00:03:36,190 --> 00:03:42,005
De même, une requête POST arrivant

47
00:03:42,005 --> 00:03:46,420
au point de fin de l'API REST sur

48
00:03:46,420 --> 00:03:51,330
le serveur signifie que la requête POST apporte certaines données dans le corps du message.

49
00:03:51,330 --> 00:03:55,795
Donc, ces informations doivent être traitées dans le serveur Express

50
00:03:55,795 --> 00:04:01,150
et les informations qui doivent être stockées sur

51
00:04:01,150 --> 00:04:07,208
la base de données doivent être extraites du corps de la requête POST entrante, puis la demande de

52
00:04:07,208 --> 00:04:11,380
création correspondante doit

53
00:04:11,380 --> 00:04:17,590
être créée ou initiée à partir du serveur Express pour la base de données MongoDB,

54
00:04:17,590 --> 00:04:19,450
et dans la requête create,

55
00:04:19,450 --> 00:04:22,330
les informations qui ont été récupérées du corps de

56
00:04:22,330 --> 00:04:25,870
la requête POST seront envoyées à

57
00:04:25,870 --> 00:04:33,130
la base de données pour créer un nouveau document dans une collection spécifique de la base de données.

58
00:04:33,130 --> 00:04:36,550
Et puis le résultat de cette opération sera

59
00:04:36,550 --> 00:04:40,200
renvoyé au client dans le message de réponse.

60
00:04:40,200 --> 00:04:47,155
Ainsi, toute opération effectuée sur un point final d'API REST, qu'il s'agisse d'une

61
00:04:47,155 --> 00:04:48,951
opération GET, PUT, POST ou DELETE,

62
00:04:48,951 --> 00:04:51,005
comme vous le voyez dans ces deux exemples,

63
00:04:51,005 --> 00:04:58,063
lancera une opération de base de données correspondante dans les coulisses.

64
00:04:58,063 --> 00:05:01,120
Donc, après avoir compris cette interaction,

65
00:05:01,120 --> 00:05:05,590
ce que nous réalisons est qu'une requête HTTP entrant dans

66
00:05:05,590 --> 00:05:10,360
un point de fin d'API REST doit être mappée dans une opération de base de données correspondante.

67
00:05:10,360 --> 00:05:12,260
Ainsi, chaque requête entrante, GET, PUT, POST

68
00:05:12,260 --> 00:05:19,270
ou DELETE signifie qu'une ressource spécifique de la base de données peut être consultée,

69
00:05:19,270 --> 00:05:23,530
peut être récupérée ou un groupe de ressources peut être

70
00:05:23,530 --> 00:05:28,360
récupéré à partir de la base de données puis renvoyé au serveur,

71
00:05:28,360 --> 00:05:34,015
ou une ressource peut être modifiée en réponse à un PUT ou à un POST

72
00:05:34,015 --> 00:05:40,425
ou même une requête DELETE entrant dans le serveur API REST.

73
00:05:40,425 --> 00:05:44,170
Il appartient donc à la logique du serveur Express,

74
00:05:44,170 --> 00:05:47,545
la logique métier implémentée dans le serveur API REST Express, de

75
00:05:47,545 --> 00:05:53,860
gérer cette traduction de la requête entrante, qu'il s'agisse d'une requête GET,

76
00:05:53,860 --> 00:05:58,765
PUT, POST ou DELETE dans l'opération de base de données correspondante.

77
00:05:58,765 --> 00:06:03,085
Alors regardons un exemple de ceci dans un peu plus en détail.

78
00:06:03,085 --> 00:06:07,480
Donc, en arrivant à la combinaison du routeur Express plus

79
00:06:07,480 --> 00:06:12,445
MongoDB plus Mongoose agissant comme l'ODM entre les deux, les

80
00:06:12,445 --> 00:06:17,710
opérations à effectuer de la base de données doivent être initiées à

81
00:06:17,710 --> 00:06:23,275
l'intérieur du routeur que nous avons construit pour chacun des points de fin de l'API REST.

82
00:06:23,275 --> 00:06:24,310
Ainsi, dans le routeur,

83
00:06:24,310 --> 00:06:26,740
même la méthode GET,

84
00:06:26,740 --> 00:06:28,615
le PUT ou la méthode POST.

85
00:06:28,615 --> 00:06:35,440
L' action correspondante à effectuer sur la base de données, qu'il s'agisse d'une requête GET

86
00:06:35,440 --> 00:06:39,940
provoquant l'exécution d'

87
00:06:39,940 --> 00:06:44,235
une méthode de recherche de plats ou d'une requête POST provoquant l'exécution d'une méthode de création de plats,

88
00:06:44,235 --> 00:06:48,595
devra être effectuée par notre serveur Express résultant en

89
00:06:48,595 --> 00:06:53,285
l'opération correspondante étant initié sur la base de données MongoDB.

90
00:06:53,285 --> 00:06:55,555
Donc, avec cette compréhension de

91
00:06:55,555 --> 00:07:00,655
la façon dont les requêtes sont traduites dans une opération de base de données correspondante,

92
00:07:00,655 --> 00:07:06,720
passons aux deux exercices où nous allons examiner la gestion de la

93
00:07:06,720 --> 00:07:15,040
requête GET, PUT, POST et DELETE arrivant aux points de terminaison /dishes/:dishid et

94
00:07:15,040 --> 00:07:18,940
aussi modifier des qui se trouvent dans

95
00:07:18,940 --> 00:07:24,470
les sous-documents inclus dans le document plat.