﻿1
00:00:00,980 --> 00:00:03,100
‫Instructeur : Dans cette vidéo, je souhaite

2
00:00:03,100 --> 00:00:06,510
‫remanier très rapidement les fonctionnalités de l'API que nous avons implémentées

3
00:00:06,510 --> 00:00:08,620
‫au cours des deux dernières conférences.

4
00:00:08,620 --> 00:00:11,760
‫Maintenant, ce n'est pas seulement pour rendre notre code un peu

5
00:00:11,760 --> 00:00:15,000
‫plus propre, c'est aussi pour le rendre plus modulaire et plus réutilisable

6
00:00:15,000 --> 00:00:15,913
‫à l'avenir.

7
00:00:17,290 --> 00:00:20,430
‫Donc, en ce moment, nous avons tout ce code

8
00:00:20,430 --> 00:00:25,050
‫pour les fonctionnalités que nous avons construites auparavant dans cette fonction getALLTours, n'est-ce pas ?

9
00:00:25,050 --> 00:00:26,860
‫Et ça a l'air un peu brouillon.

10
00:00:26,860 --> 00:00:30,160
‫C'est un peu difficile à comprendre, d'accord ?

11
00:00:30,160 --> 00:00:33,900
‫Et, imaginez aussi que nous voulions utiliser ces mêmes fonctionnalités pour

12
00:00:33,900 --> 00:00:35,010
‫une autre ressource.

13
00:00:35,010 --> 00:00:38,250
‫Par exemple, pour les utilisateurs ou, plus tard, pour les avis.

14
00:00:38,250 --> 00:00:40,910
‫Il ne serait pas très pratique de copier

15
00:00:40,910 --> 00:00:43,300
‫le code à partir d'ici et de l'utiliser,

16
00:00:43,300 --> 00:00:45,670
‫ensuite, dans les autres ressources, d'accord.

17
00:00:45,670 --> 00:00:47,360
‫Et donc, ce que je vais

18
00:00:47,360 --> 00:00:50,340
‫faire, c'est, maintenant, créer une classe dans laquelle je vais

19
00:00:50,340 --> 00:00:54,070
‫ajouter une méthode pour chacune de ces fonctionnalités ou fonctionnalités d'API, comme vous

20
00:00:54,070 --> 00:00:55,500
‫pouvez également les appeler.

21
00:00:55,500 --> 00:00:56,900
‫D'accord?

22
00:00:56,900 --> 00:00:59,906
‫Alors, allons-y et faisons-le ici et je vais

23
00:00:59,906 --> 00:01:02,950
‫le faire ici, pour l'instant, puis, plus tard, je

24
00:01:02,950 --> 00:01:05,750
‫vais en fait l'exporter dans son propre

25
00:01:05,750 --> 00:01:08,810
‫fichier, essentiellement, pour créer un module réutilisable que nous

26
00:01:08,810 --> 00:01:11,760
‫pouvons , plus tard, importer dans d'autres contrôleurs.

27
00:01:11,760 --> 00:01:12,960
‫D'accord?

28
00:01:12,960 --> 00:01:16,663
‫Alors, classe, et je l'appelle APIFeatures.

29
00:01:19,260 --> 00:01:20,093
‫D'accord.

30
00:01:21,720 --> 00:01:24,510
‫Ensuite, nous commençons par notre fonction constructeur et

31
00:01:24,510 --> 00:01:26,840
‫rappelons-nous que c'est la fonction

32
00:01:26,840 --> 00:01:29,990
‫qui est automatiquement appelée dès que nous créons un

33
00:01:29,990 --> 00:01:33,070
‫nouvel objet à partir de cette classe, d'accord.

34
00:01:33,070 --> 00:01:36,830
‫Maintenant, qu'est-ce que je veux réellement dans ces fonctionnalités d'API ?

35
00:01:36,830 --> 00:01:41,090
‫En fait, je vais analyser deux variables ici, d'accord ?

36
00:01:41,090 --> 00:01:45,962
‫Donc la requête mangouste et aussi la queryString que nous

37
00:01:45,962 --> 00:01:47,323
‫obtenons d'express.

38
00:01:48,410 --> 00:01:51,420
‫Donc, en gros, venant de la route, d'accord.

39
00:01:51,420 --> 00:01:53,490
‫C'est donc ce à quoi nous avons

40
00:01:53,490 --> 00:01:56,760
‫généralement accès dans le req. requête, d'accord.

41
00:01:56,760 --> 00:01:59,780
‫Maintenant, encore une fois, je passe la requête ici parce que

42
00:01:59,780 --> 00:02:03,110
‫je ne veux pas interroger à l'intérieur de cette classe car cela renverrait

43
00:02:03,110 --> 00:02:06,040
‫alors cette classe à la ressource de tournée mais, encore une

44
00:02:06,040 --> 00:02:08,903
‫fois, je veux que cela soit aussi réutilisable que possible.

45
00:02:10,690 --> 00:02:11,523
‫D'accord.

46
00:02:11,523 --> 00:02:14,080
‫Donc, ce que nous faisons habituellement dans cette

47
00:02:14,080 --> 00:02:18,490
‫fonction constructeur, c'est de dire ceci. la requête est égale à la requête que nous

48
00:02:18,490 --> 00:02:21,480
‫avons reçue en argument, puis celle-ci. queryString

49
00:02:25,130 --> 00:02:27,890
‫est égal à queryString.

50
00:02:27,890 --> 00:02:28,723
‫D'accord?

51
00:02:28,723 --> 00:02:32,490
‫Donc fonction constructeur très simple et très typique.

52
00:02:32,490 --> 00:02:35,580
‫Et maintenant, comme je l'ai mentionné, je vais

53
00:02:35,580 --> 00:02:39,313
‫créer une méthode pour chacune des fonctionnalités, en commençant par filter.

54
00:02:41,860 --> 00:02:42,693
‫D'accord.

55
00:02:42,693 --> 00:02:46,490
‫Et donc, allons-y maintenant et coupons le code à partir d'ici.

56
00:02:46,490 --> 00:02:49,130
‫Ou, en fait, je vais le copier et

57
00:02:49,130 --> 00:02:52,180
‫les commenter, afin de ne pas causer de dommages accidentels.

58
00:02:52,180 --> 00:02:53,710
‫Alors, copiez et

59
00:02:55,350 --> 00:02:57,120
‫commentez et mettez-le ici.

60
00:02:57,120 --> 00:02:59,450
‫Donc, quelques choses que nous devons changer.

61
00:02:59,450 --> 00:03:03,350
‫Tout d'abord, demande. la requête ne sera pas disponible à

62
00:03:03,350 --> 00:03:04,830
‫l'intérieur de cette classe.

63
00:03:04,830 --> 00:03:07,250
‫Et donc, c'est pourquoi nous avons en fait analysé dans le queryString.

64
00:03:07,250 --> 00:03:09,930
‫Et donc, ceci ici va être remplacé

65
00:03:09,930 --> 00:03:11,623
‫par ceci. chaîne de requête.

66
00:03:13,490 --> 00:03:14,323
‫D'accord?

67
00:03:14,323 --> 00:03:16,450
‫Donc, encore une fois, il ne s'agit que de Javascript de base.

68
00:03:16,450 --> 00:03:20,260
‫N'a en fait rien à voir avec Note ou Express.

69
00:03:20,260 --> 00:03:24,760
‫Alors le reste ici va bien, mais ici ça ne va pas du tout.

70
00:03:24,760 --> 00:03:29,340
‫Donc, je ne veux pas interroger la visite directement ici, rappelez-vous, mais à la

71
00:03:29,340 --> 00:03:32,170
‫place, je veux simplement ajouter maintenant cette recherche

72
00:03:32,170 --> 00:03:34,650
‫à la requête que nous avons déjà.

73
00:03:34,650 --> 00:03:37,147
‫Donc ça. mettre en doute. trouver

74
00:03:40,560 --> 00:03:43,763
‫et ainsi, ce sera alors ceci.

75
00:03:45,010 --> 00:03:45,860
‫D'accord?

76
00:03:45,860 --> 00:03:47,800
‫Débarrassons-nous maintenant de ça.

77
00:03:47,800 --> 00:03:50,370
‫Et avant d'ajouter d'autres méthodes ici, allons de l'avant

78
00:03:50,370 --> 00:03:52,870
‫et utilisons cette classe juste pour que cela

79
00:03:52,870 --> 00:03:54,833
‫ait plus de sens pour vous.

80
00:03:55,700 --> 00:03:56,533
‫D'accord?

81
00:03:56,533 --> 00:03:58,653
‫Alors, comment cela va-t-il réellement fonctionner ?

82
00:03:59,890 --> 00:04:02,400
‫Et je vais tout faire ici à la

83
00:04:02,400 --> 00:04:04,420
‫fin ici sous Execute Query.

84
00:04:04,420 --> 00:04:05,350
‫D'accord?

85
00:04:05,350 --> 00:04:07,750
‫Et donc, ce que je peux faire maintenant, c'est créer

86
00:04:07,750 --> 00:04:09,583
‫une variable appelée Fonctionnalités, par exemple.

87
00:04:12,450 --> 00:04:17,300
‫Et puis à partir de là, je vais créer un nouvel objet de fonctionnalités API.

88
00:04:17,300 --> 00:04:18,160
‫D'accord?

89
00:04:18,160 --> 00:04:21,560
‫Donc, en gros, créer une instance de ces fonctionnalités d'API

90
00:04:21,560 --> 00:04:23,870
‫qui seront ensuite stockées dans Features.

91
00:04:23,870 --> 00:04:26,600
‫Et ceci ici, nous aurons alors accès à toutes

92
00:04:26,600 --> 00:04:29,380
‫les méthodes que nous allons définir dans la définition de classe.

93
00:04:29,380 --> 00:04:30,360
‫D'accord?

94
00:04:30,360 --> 00:04:33,490
‫Alors, rappelez-vous, ici, nous devons passer une requête

95
00:04:33,490 --> 00:04:34,980
‫et le queryString.

96
00:04:34,980 --> 00:04:36,983
‫Alors, la requête, comment en créer une ?

97
00:04:38,440 --> 00:04:41,580
‫Rappelez-vous, c'est Tour. trouve.

98
00:04:41,580 --> 00:04:45,040
‫Donc, il y a un objet de requête et donc, c'est celui

99
00:04:45,040 --> 00:04:48,010
‫que nous avons analysé dans cette classe et ensuite, bien

100
00:04:48,010 --> 00:04:52,410
‫sûr, le queryString qui est req. mettre en doute.

101
00:04:52,410 --> 00:04:54,990
‫Bon, maintenant, sur ces fonctionnalités ici, rappelez-vous, nous

102
00:04:54,990 --> 00:04:57,160
‫n'avons pas accès au filtre.

103
00:04:57,160 --> 00:05:00,153
‫Et donc, mettons-le juste ici après.

104
00:05:01,410 --> 00:05:04,070
‫Donc, . filtre.

105
00:05:04,070 --> 00:05:05,570
‫Donnez-lui une sauvegarde.

106
00:05:05,570 --> 00:05:07,750
‫Et donc, juste comme ça, nous allons

107
00:05:07,750 --> 00:05:10,550
‫exécuter ou coder pour la fonctionnalité de filtrage de l'API.

108
00:05:10,550 --> 00:05:12,760
‫Ensuite, ici, la ligne suivante ne

109
00:05:12,760 --> 00:05:14,970
‫fonctionnera bien sûr pas car cette

110
00:05:14,970 --> 00:05:16,670
‫requête ici n'existe plus.

111
00:05:16,670 --> 00:05:20,947
‫Au lieu de cela, ce que nous avons maintenant, ce sont des fonctionnalités. requête, non?

112
00:05:22,760 --> 00:05:24,960
‫Donc, après tout ce traitement maintenant, en gros.

113
00:05:26,040 --> 00:05:29,530
‫D'accord, donc, maintenant, après ce filtre, ceci. requête aura alors

114
00:05:29,530 --> 00:05:32,500
‫cette nouvelle méthode de recherche dessus.

115
00:05:32,500 --> 00:05:37,310
‫D'accord, et donc, encore une fois, cela est ensuite stocké dans this. mettre en doute.

116
00:05:37,310 --> 00:05:39,910
‫Et, plus tard, nous aurons toutes ces autres méthodes qui,

117
00:05:39,910 --> 00:05:41,930
‫toutes, manipuleront cela. requête de sorte

118
00:05:42,886 --> 00:05:45,729
‫que, à la fin, this. query est la

119
00:05:45,729 --> 00:05:47,620
‫requête que nous voulons exécuter.

120
00:05:47,620 --> 00:05:48,793
‫Alors, comme ici.

121
00:05:49,920 --> 00:05:53,800
‫D'accord, comme ici, nous avons toujours continué à manipuler la

122
00:05:53,800 --> 00:05:55,130
‫variable de requête.

123
00:05:55,130 --> 00:05:57,460
‫Nous avons continué à y ajouter de plus en

124
00:05:57,460 --> 00:06:00,100
‫plus de méthodes jusqu'à ce que nous l'exécutions à la fin.

125
00:06:00,100 --> 00:06:02,530
‫Et donc, ici, nous faisons exactement la même chose.

126
00:06:02,530 --> 00:06:05,910
‫Nous déplaçons simplement le code dans toutes ces méthodes.

127
00:06:05,910 --> 00:06:06,743
‫D'accord?

128
00:06:06,743 --> 00:06:09,900
‫Puis, à la fin, comme je l'ai dit, la requête va être

129
00:06:09,900 --> 00:06:13,290
‫stockée à l'intérieur de cette propriété ici et donc, oui, c'est là

130
00:06:13,290 --> 00:06:14,800
‫que nous, ensuite, faisons l'attente

131
00:06:14,800 --> 00:06:16,093
‫et récupérons les résultats.

132
00:06:17,360 --> 00:06:18,220
‫D'accord?

133
00:06:18,220 --> 00:06:21,763
‫Quoi qu'il en soit, continuons d'avancer ici et implémentons le tri.

134
00:06:22,730 --> 00:06:24,913
‫Donc, je copie et commente.

135
00:06:27,300 --> 00:06:32,003
‫Alors, filtrez et le suivant s'appelle Trier.

136
00:06:34,030 --> 00:06:35,160
‫D'accord.

137
00:06:35,160 --> 00:06:38,510
‫Et donc, là encore, il faut remplacer request. requête avec

138
00:06:38,510 --> 00:06:41,013
‫ceci. queryString, d'accord.

139
00:06:43,455 --> 00:06:46,288
‫Et puis, la requête est maintenant celle-ci. mettre en doute.

140
00:06:47,510 --> 00:06:52,383
‫Mettons-nous donc ces quatre là-dedans. mettre en doute.

141
00:06:56,540 --> 00:06:59,950
‫Bon, maintenant, le but ici est

142
00:06:59,950 --> 00:07:03,380
‫essentiellement d'enchaîner ces méthodes ici l'une après l'autre.

143
00:07:03,380 --> 00:07:05,340
‫Alors laissez-moi vous montrer cela ici.

144
00:07:05,340 --> 00:07:08,262
‫Nous avons donc un filtre puis, après cela, nous

145
00:07:08,262 --> 00:07:10,253
‫voulons enchaîner la méthode de tri.

146
00:07:12,730 --> 00:07:15,820
‫Maintenant, pour le moment, cela ne

147
00:07:15,820 --> 00:07:20,110
‫fonctionnera pas vraiment, car où enchaînons-nous réellement ce genre?

148
00:07:20,110 --> 00:07:24,170
‫Donc, fondamentalement, nous essayons de l'appeler sur le résultat de ceci mais, en

149
00:07:24,170 --> 00:07:27,120
‫ce moment, quel est le résultat de cela ?

150
00:07:27,120 --> 00:07:29,840
‫Eh bien, ce n'est pas vraiment n'importe quoi parce

151
00:07:29,840 --> 00:07:32,840
‫que cette méthode de filtrage ici ne renvoie rien, n'est-ce pas ?

152
00:07:32,840 --> 00:07:35,460
‫Maintenant, ce morceau de code ici, bien

153
00:07:35,460 --> 00:07:38,830
‫sûr, renvoie l'objet qui vient d'être créé et nous pouvons

154
00:07:38,830 --> 00:07:41,560
‫donc chaîner la méthode de filtrage sur celui-ci.

155
00:07:41,560 --> 00:07:44,460
‫Mais la méthode de filtrage, à son tour, ne renvoie rien.

156
00:07:44,460 --> 00:07:47,910
‫Et donc, à ce stade, on ne peut pas vraiment appeler un

157
00:07:47,910 --> 00:07:49,630
‫tri sur l'objet, non ?

158
00:07:49,630 --> 00:07:51,510
‫Et donc, la solution simple

159
00:07:51,510 --> 00:07:55,033
‫à cela, et peut-être l'avez-vous déjà fait plus tôt dans votre

160
00:07:56,520 --> 00:07:58,853
‫code, est que nous devons maintenant renvoyer ceci.

161
00:08:01,120 --> 00:08:06,103
‫Alors, retournez ceci et c'est simplement l'objet entier, d'accord ?

162
00:08:07,252 --> 00:08:09,723
‫Et la même chose, alors, ici-bas.

163
00:08:11,790 --> 00:08:13,570
‫Alors, retourne ça.

164
00:08:13,570 --> 00:08:17,360
‫Afin, encore une fois, de renvoyer l'intégralité de l'objet qui, bien entendu,

165
00:08:17,360 --> 00:08:20,530
‫a alors accès à ces autres méthodes pour qu'on

166
00:08:20,530 --> 00:08:22,493
‫puisse, ensuite, les y appeler.

167
00:08:23,610 --> 00:08:24,443
‫D'accord?

168
00:08:25,690 --> 00:08:28,643
‫Donc, la prochaine étape est la limitation.

169
00:08:34,000 --> 00:08:36,150
‫Et je vais appeler celui-ci limitFields.

170
00:08:39,680 --> 00:08:41,340
‫Et c'est parce que

171
00:08:41,340 --> 00:08:43,710
‫toutes ces méthodes auront ces verbes comme noms.

172
00:08:43,710 --> 00:08:47,240
‫C'est donc filtrer, trier, limiter, et la pagination

173
00:08:47,240 --> 00:08:48,640
‫sera la suivante.

174
00:08:49,870 --> 00:08:53,730
‫Donc, encore une fois, req. requête est maintenant ceci. queryString et requête

175
00:08:57,649 --> 00:09:00,399
‫ici est maintenant ceci. mettre en doute.

176
00:09:04,494 --> 00:09:05,327
‫D'accord?

177
00:09:08,196 --> 00:09:11,196
‫Renvoyez ceci et ce n'est pas correct.

178
00:09:14,290 --> 00:09:17,123
‫Bon, et enfin, la pagination.

179
00:09:18,490 --> 00:09:19,873
‫Copiez, commentez.

180
00:09:25,020 --> 00:09:26,413
‫Alors, paginer.

181
00:09:29,770 --> 00:09:31,650
‫Renvoyez ceci et, bien sûr, nous devons

182
00:09:31,650 --> 00:09:39,187
‫remplacer ces req. interroger ceci.

183
00:09:39,187 --> 00:09:39,187
‫chaîne de requête.

184
00:09:39,187 --> 00:09:41,610
‫Et puis ici, comme avant, ça

185
00:09:41,610 --> 00:09:44,890
‫va être ça. mettre en doute.

186
00:09:44,890 --> 00:09:47,770
‫Et je viens de réaliser que là-haut, juste

187
00:09:47,770 --> 00:09:51,040
‫dans la première méthode, nous ne l'avons pas fait ici.

188
00:09:51,040 --> 00:09:54,560
‫Donc, nous avons simplement dit ceci. requête, puis

189
00:09:54,560 --> 00:09:57,080
‫a ajouté la recherche là-bas.

190
00:09:57,080 --> 00:09:59,190
‫Mais alors, bien sûr, nous

191
00:09:59,190 --> 00:10:01,700
‫devons l'enregistrer dans cette propriété de requête.

192
00:10:01,700 --> 00:10:03,593
‫D'accord, et donc, j'ai oublié ça.

193
00:10:04,650 --> 00:10:06,610
‫Et nous avons une erreur ici.

194
00:10:06,610 --> 00:10:08,280
‫Très bien, cela n'a pas vraiment

195
00:10:08,280 --> 00:10:09,690
‫d'importance ici en ce moment.

196
00:10:09,690 --> 00:10:13,170
‫Ou, en fait, c'est parce que cette ligne de code ici

197
00:10:13,170 --> 00:10:15,910
‫est en fait dans notre méthode de pagination.

198
00:10:15,910 --> 00:10:17,490
‫Alors allons-y.

199
00:10:17,490 --> 00:10:19,720
‫Et, en fait, je voulais vraiment

200
00:10:19,720 --> 00:10:21,210
‫vous en parler ici.

201
00:10:21,210 --> 00:10:24,350
‫Car, à bien y réfléchir, demander la page suivante,

202
00:10:24,350 --> 00:10:27,740
‫qui a un résultat nul, n'est pas vraiment une erreur.

203
00:10:27,740 --> 00:10:30,852
‫Le fait qu'il n'y ait pas de résultats suffit

204
00:10:30,852 --> 00:10:34,900
‫pour que l'utilisateur se rende compte que, fondamentalement, la page qui a été

205
00:10:34,900 --> 00:10:36,660
‫demandée ne contient aucune donnée.

206
00:10:36,660 --> 00:10:39,450
‫Nous n'avons donc pas vraiment besoin d'une erreur dans cette situation.

207
00:10:39,450 --> 00:10:42,933
‫Et donc, je vais juste aller de l'avant et supprimer tout ce code.

208
00:10:43,940 --> 00:10:45,430
‫D'accord?

209
00:10:45,430 --> 00:10:47,600
‫Alors laissez-moi l'enregistrer maintenant ici.

210
00:10:47,600 --> 00:10:49,963
‫Et maintenant, bien sûr, l'erreur a disparu.

211
00:10:53,800 --> 00:10:56,950
‫Et ici, nous devons également continuer à

212
00:10:56,950 --> 00:10:58,770
‫ajouter ces autres méthodes.

213
00:10:58,770 --> 00:11:02,577
‫Ainsi, limitFields et . paginer.

214
00:11:05,160 --> 00:11:09,360
‫Sauvegardez-le et, encore une fois, rappelez-vous que tout ce chaînage ici

215
00:11:09,360 --> 00:11:12,180
‫ne fonctionne que parce qu'après avoir

216
00:11:12,180 --> 00:11:15,420
‫appelé chacune de ces méthodes, nous le retournons toujours.

217
00:11:15,420 --> 00:11:18,800
‫Et c'est l'objet lui-même qui a accès à

218
00:11:18,800 --> 00:11:21,410
‫chacune de ces méthodes ici,

219
00:11:21,410 --> 00:11:24,640
‫permettant de les enchaîner comme nous l'avons ici.

220
00:11:24,640 --> 00:11:26,860
‫Bon, juste pour récapituler :

221
00:11:26,860 --> 00:11:31,040
‫nous créons un nouvel objet de la classe de fonctionnalités de l'API.

222
00:11:31,040 --> 00:11:33,960
‫Là, nous analysons un objet de

223
00:11:33,960 --> 00:11:37,240
‫requête et la chaîne de requête provenant d'express.

224
00:11:37,240 --> 00:11:38,400
‫D'accord?

225
00:11:38,400 --> 00:11:41,180
‫Ensuite, dans chacune de ces quatre méthodes ici

226
00:11:41,180 --> 00:11:44,400
‫que nous appelons l'une après l'autre, nous manipulons essentiellement la requête.

227
00:11:44,400 --> 00:11:48,010
‫Nous continuons d'y ajouter plus de méthodes, comme nous

228
00:11:48,010 --> 00:11:52,160
‫l'avons fait ici avant de procéder à cette refactorisation, n'est-ce pas.

229
00:11:52,160 --> 00:11:55,900
‫Donc, nous continuons à ajouter des éléments à la requête ici jusqu'à la

230
00:11:55,900 --> 00:11:59,040
‫fin, puis, à la fin, nous attendons simplement le résultat de

231
00:11:59,040 --> 00:12:02,070
‫cette requête afin qu'elle puisse revenir avec tous les documents

232
00:12:02,070 --> 00:12:04,210
‫qui ont été sélectionnés, d'accord ?

233
00:12:04,210 --> 00:12:06,580
‫Et cette requête réside maintenant dans les

234
00:12:06,580 --> 00:12:08,640
‫fonctionnalités qui sont cet objet ici.

235
00:12:08,640 --> 00:12:10,123
‫Donc fonctionnalités. mettre en doute.

236
00:12:11,330 --> 00:12:13,620
‫D'accord, j'espère que ça a du sens.

237
00:12:13,620 --> 00:12:17,960
‫Donc, avant de faire quoi que ce soit d'autre, revenons à

238
00:12:17,960 --> 00:12:20,090
‫Postman et essayons réellement.

239
00:12:20,090 --> 00:12:23,500
‫Et nous pouvons l'essayer ici avec cet itinéraire top 5

240
00:12:23,500 --> 00:12:25,650
‫bon marché parce que, en fait,

241
00:12:25,650 --> 00:12:29,030
‫dans les coulisses, utilise toutes ces fonctionnalités d'API, n'est-ce pas.

242
00:12:29,030 --> 00:12:32,240
‫Donc, si je l'envoie, eh bien, ça marche toujours.

243
00:12:32,240 --> 00:12:33,763
‫Alors c'est fantastique.

244
00:12:34,730 --> 00:12:38,823
‫Alors fermons-le et permettez-moi de le sauvegarder ici.

245
00:12:40,490 --> 00:12:44,453
‫Alors, obtenez les cinq meilleurs circuits bon marché.

246
00:12:49,220 --> 00:12:51,370
‫Et oui, je vais en rester là à la fin.

247
00:12:51,370 --> 00:12:53,763
‫Et maintenant, juste ici, faisons quelques tests.

248
00:12:54,790 --> 00:12:58,373
‫Par exemple, supprimez le tri, laissez-moi laisser la limite.

249
00:12:59,570 --> 00:13:02,260
‫Difficulté, durée, prix.

250
00:13:02,260 --> 00:13:04,170
‫Donc, je vais laisser tout cela

251
00:13:04,170 --> 00:13:06,620
‫ici juste pour voir si cela fonctionne toujours.

252
00:13:06,620 --> 00:13:10,590
‫Et il semble que tout fonctionne encore, n'est-ce pas.

253
00:13:10,590 --> 00:13:13,110
‫Ce sont donc exactement les mêmes résultats que

254
00:13:13,110 --> 00:13:15,500
‫nous avons obtenus avant notre refactorisation.

255
00:13:15,500 --> 00:13:17,320
‫Alors, super, parfait.

256
00:13:17,320 --> 00:13:20,530
‫Cela a fonctionné et donc, supprimons maintenant tout

257
00:13:20,530 --> 00:13:23,950
‫ce code d'ici qui rend notre gestionnaire de route

258
00:13:23,950 --> 00:13:26,410
‫tellement plus propre, n'est-ce pas ?

259
00:13:26,410 --> 00:13:30,840
‫Alors, c'est tellement mieux, vraiment, c'est le jour et la nuit.

260
00:13:30,840 --> 00:13:31,800
‫D'accord?

261
00:13:31,800 --> 00:13:34,210
‫Maintenant, la prochaine étape est de

262
00:13:34,210 --> 00:13:38,500
‫prendre tout ce code, de le couper et de le mettre dans

263
00:13:38,500 --> 00:13:41,700
‫un nouveau fichier, donc un nouveau module, en gros.

264
00:13:41,700 --> 00:13:44,720
‫D'accord, et pour cela, je vais créer un nouveau dossier

265
00:13:44,720 --> 00:13:46,563
‫ici que je vais appeler Utils.

266
00:13:47,420 --> 00:13:49,713
‫Donc, cela signifie, fondamentalement, les services publics.

267
00:13:51,010 --> 00:13:53,850
‫Et je vais ajouter quelques trucs ici sur

268
00:13:53,850 --> 00:13:55,503
‫le reste du cours.

269
00:13:57,060 --> 00:13:57,893
‫D'accord?

270
00:13:57,893 --> 00:14:00,050
‫Celui-ci

271
00:14:00,050 --> 00:14:05,050
‫s'appellera donc APIFeatures. js et avec un F majuscule ici.

272
00:14:09,430 --> 00:14:10,263
‫D'accord?

273
00:14:10,263 --> 00:14:13,621
‫Alors, voici notre classe et, à la fin,

274
00:14:13,621 --> 00:14:17,823
‫nous faisons un module. exportations de cette classe.

275
00:14:20,040 --> 00:14:21,800
‫Donc rien de nouveau pour le moment.

276
00:14:21,800 --> 00:14:24,140
‫Sauvegardez-le, fermez-le, et maintenant,

277
00:14:24,140 --> 00:14:27,073
‫ici, nous pouvons en avoir besoin.

278
00:14:28,147 --> 00:14:30,730
‫Les caractéristiques de l'API Const sont alors requises.

279
00:14:35,980 --> 00:14:38,490
‫Ensuite, nous devons déplacer un dossier

280
00:14:38,490 --> 00:14:41,613
‫vers le haut, puis dans Utils et APIFeatures.

281
00:14:43,110 --> 00:14:44,210
‫D'accord?

282
00:14:44,210 --> 00:14:45,313
‫Encore un essai.

283
00:14:48,010 --> 00:14:51,000
‫Et ça prend du temps, et c'est parti.

284
00:14:51,000 --> 00:14:53,760
‫Magnifique, c'est vraiment tout simplement magnifique.

285
00:14:53,760 --> 00:14:57,720
‫Maintenant, si nous créons à nouveau une autre ressource, par

286
00:14:57,720 --> 00:15:00,280
‫exemple, pour les utilisateurs, il sera si

287
00:15:00,280 --> 00:15:02,630
‫facile d'ajouter cette même fonctionnalité.

288
00:15:02,630 --> 00:15:06,110
‫Tout ce que nous allons avoir à faire est de demander ce fichier,

289
00:15:06,110 --> 00:15:08,680
‫puis, en gros, de faire la même chose qu'ici.

290
00:15:08,680 --> 00:15:11,000
‫Ou peut-être, dans ce cas, nous ne voulons même

291
00:15:11,000 --> 00:15:14,040
‫pas avoir cette capacité de tri ou nous ne voulons pas avoir

292
00:15:14,040 --> 00:15:17,140
‫la capacité de filtrage et ensuite, tout ce que nous avons à faire

293
00:15:17,140 --> 00:15:19,440
‫est de simplement retirer cette ligne de code.

294
00:15:19,440 --> 00:15:21,680
‫Et puis, comme par magie, il

295
00:15:21,680 --> 00:15:23,280
‫ne fera que ces

296
00:15:23,280 --> 00:15:25,810
‫trois fonctionnalités ou ces trois fonctionnalités, d'accord.

297
00:15:25,810 --> 00:15:27,890
‫Et donc, c'est vraiment super.

298
00:15:27,890 --> 00:15:29,630
‫J'espère que vous pouvez voir

299
00:15:29,630 --> 00:15:33,353
‫la valeur de cela et, oui, je suis vraiment content de ce résultat.

