1
00:00:00,025 --> 00:00:04,580
[MUSIC]

2
00:00:04,580 --> 00:00:09,730
Dans l'exercice précédent, nous avons mis nos serveurs de bouclage à un certain stade.

3
00:00:09,730 --> 00:00:13,549
Nous pouvons maintenant connecter nos serveurs de bouclage à la base de données mongolab,

4
00:00:15,040 --> 00:00:19,290
la base de données servant de source de données pour nos serveurs de bouclage.

5
00:00:19,290 --> 00:00:24,042
Nous définissons également des listes contrôlées d'accès pour contrôler l'accès au rayon,

6
00:00:24,042 --> 00:00:28,010
le reste est ici, dans les parties avec notre serveur de bouclage.

7
00:00:28,010 --> 00:00:31,590
Dans cet exercice, nous explorerons les relations de bouclage.

8
00:00:31,590 --> 00:00:36,510
Nous pouvons maintenant définir des modèles et définir des relations entre les modèles.

9
00:00:36,510 --> 00:00:40,280
Donc, par exemple, prenons l'exemple d'un commentaire.

10
00:00:40,280 --> 00:00:44,860
Lorsque vous postez un commentaire sur un plat, le commentaire est lié au plat.

11
00:00:44,860 --> 00:00:46,980
Un commentaire appartient à un plat.

12
00:00:46,980 --> 00:00:50,610
De même, un commentaire est publié par un utilisateur spécifique.

13
00:00:50,610 --> 00:00:55,730
Donc, le commentaire appartient à la relation avec cet utilisateur spécifique.

14
00:00:55,730 --> 00:00:59,370
Maintenant, lorsque vous regardez la relation dans le sens inverse,

15
00:00:59,370 --> 00:01:02,555
un plat peut avoir plusieurs commentaires associés à celui-ci, et de

16
00:01:02,555 --> 00:01:05,616
même, un utilisateur peut avoir posté plusieurs commentaires.

17
00:01:05,616 --> 00:01:10,512
Ce sont donc les plus grands types de relations que vous pouvez définir entre

18
00:01:10,512 --> 00:01:14,640
les différents modèles de notre serveur de bouclage.

19
00:01:14,640 --> 00:01:18,930
Nous allons également examiner l'utilisation d'une boucle mixte,

20
00:01:18,930 --> 00:01:23,460
ce qui nous permet d'ajouter des propriétés supplémentaires à nos modèles.

21
00:01:23,460 --> 00:01:28,850
À la fin de cet exercice, vous aurez un serveur de bouclage assez complet,

22
00:01:28,850 --> 00:01:32,770
que nous pouvons ensuite connecter à notre client angulaire et

23
00:01:32,770 --> 00:01:37,400
être en mesure de l'utiliser comme back-end pour notre client angulaire.

24
00:01:39,650 --> 00:01:46,350
Pour continuer l'exercice, dans le dossier de notre serveur de bouclage,

25
00:01:46,350 --> 00:01:50,910
créons un nouveau modèle pour un commentaire.

26
00:01:50,910 --> 00:01:55,040
Donc, ce modèle définira comme

27
00:01:56,610 --> 00:02:01,930
commentaire, et dans ce cas, ce modèle est également enregistré

28
00:02:01,930 --> 00:02:07,030
dans MongoDB et sera comme un modèle persistant,

29
00:02:07,030 --> 00:02:12,040
et nous allons exposer le commentaire via l'API REST et

30
00:02:13,580 --> 00:02:18,180
le dossier du modèle est dans le dossier commun et pour

31
00:02:18,180 --> 00:02:22,170
ce commentaire, nous aurons deux propriétés associées à ça.

32
00:02:22,170 --> 00:02:28,489
Et la première propriété est Rating.

33
00:02:30,647 --> 00:02:34,499
Ce qui est du type Number.

34
00:02:34,499 --> 00:02:39,300
Ceci est requis et la valeur par défaut, je laisserai cela comme 5.

35
00:02:39,300 --> 00:02:45,988
Et la deuxième propriété serait Commentaire, qui est de la chaîne de type.

36
00:02:45,988 --> 00:02:52,410
Ceci est obligatoire et la valeur par défaut est vide.

37
00:02:52,410 --> 00:02:56,320
Donc, chaque commentaire aura ces deux propriétés, notation et commentaire,

38
00:02:56,320 --> 00:02:57,800
associés à elle.

39
00:02:57,800 --> 00:03:01,190
En outre, nous devons maintenant définir la relation entre le commentaire et

40
00:03:01,190 --> 00:03:06,000
l'utilisateur qui soumet le commentaire, ainsi que le commentaire et

41
00:03:06,000 --> 00:03:10,260
le plat auquel ce commentaire est associé.

42
00:03:10,260 --> 00:03:15,010
De même, nous avons vu dans l'exercice précédent qu'ils ont ajouté

43
00:03:15,010 --> 00:03:17,360
leurs favoris pour un utilisateur.

44
00:03:17,360 --> 00:03:22,610
Donc, pour définir les favoris, laissez-moi à nouveau définir un modèle,

45
00:03:22,610 --> 00:03:29,390
et ce nom de modèle est favori et ceci est également enregistré dans le MongoDB,

46
00:03:29,390 --> 00:03:33,870
et c'est aussi un modèle persistedModel, et

47
00:03:33,870 --> 00:03:39,120
nous allons exposer le favori pour l'API de repos et est dans le dossier commun.

48
00:03:39,120 --> 00:03:43,020
Maintenant, le favori lui-même n'a pas besoin de propriété spécifique parce que tout

49
00:03:43,020 --> 00:03:48,770
le favori fait est d'associer l'utilisateur spécifique à ce plat spécifique.

50
00:03:48,770 --> 00:03:52,790
Donc, le favori ici va être utilisé simplement comme un pont entre l'utilisateur

51
00:03:52,790 --> 00:03:53,770
et le plat.

52
00:03:53,770 --> 00:03:58,385
Donc, nous allons utiliser le favori comme un moyen de définir les relations entre le plat et

53
00:03:58,385 --> 00:04:00,320
un utilisateur.

54
00:04:00,320 --> 00:04:02,710
Donc, il n'a pas de propriétés spécifiques.

55
00:04:02,710 --> 00:04:07,970
Nous avons donc ajouté deux modèles à notre serveur de bouclage.

56
00:04:07,970 --> 00:04:10,950
Maintenant, commençons à définir les relations du modèle.

57
00:04:10,950 --> 00:04:13,110
Maintenant, comme je l'ai expliqué plus tôt,

58
00:04:13,110 --> 00:04:17,260
il existe différents types de relations modèles que nous pouvons définir.

59
00:04:17,260 --> 00:04:22,230
Commençons par définir la relation entre un plat et un commentaire.

60
00:04:22,230 --> 00:04:27,820
Donc, pour définir un modèle en boucle, nous allons dire, relation lb.

61
00:04:27,820 --> 00:04:29,890
Et lorsque la relation entre en jeu,

62
00:04:29,890 --> 00:04:34,370
nous devons spécifier le modèle à partir duquel créer la relation.

63
00:04:34,370 --> 00:04:38,700
Donc, en premier lieu, nous allons créer une relation entre un plat.

64
00:04:38,700 --> 00:04:45,080
Donc, à partir des plats, et un plat peut avoir beaucoup de commentaires associés,

65
00:04:45,080 --> 00:04:50,160
donc c'est pourquoi le type de relation en a beaucoup

66
00:04:50,160 --> 00:04:56,480
et est associé à un commentaire et le nom de propriété pour la relation,

67
00:04:56,480 --> 00:05:02,060
je le laisserai comme par défaut avec juste commentaire avec

68
00:05:04,320 --> 00:05:09,470
une petite lettre c. clé étrangère personnalisée spécifique si nous le voulons.

69
00:05:09,470 --> 00:05:13,600
Si nous ne le faisons pas, loopback attribuera automatiquement la clé étrangère,

70
00:05:13,600 --> 00:05:18,290
ce qui ne serait rien d'autre que les commentaires et un identifiant qui lui est associé.

71
00:05:18,290 --> 00:05:21,700
Donc, il va regarder en arrière pour le définir automatiquement.

72
00:05:21,700 --> 00:05:25,860
Nous pouvons également avoir à travers des modèles, ce qui dans ce cas n'est pas applicable.

73
00:05:25,860 --> 00:05:31,490
Un modèle traversant nous permettra de définir la relation à l'un et à l'autre modèle et

74
00:05:31,490 --> 00:05:36,900
dans ce cas, nous n'avons pas une telle relation, donc nous allons simplement dire non et

75
00:05:36,900 --> 00:05:40,670
nous n'imbriquerons pas l'API REST, et aussi,

76
00:05:40,670 --> 00:05:45,430
nous allons désactiver la relation d'être inclus.

77
00:05:45,430 --> 00:05:48,480
Et donc, nous avons spécifié

78
00:05:48,480 --> 00:05:53,000
que la désactivation de la relation d'être inclus est non.

79
00:05:53,000 --> 00:05:55,790
Plus tard, vous verrez pourquoi c'est important.

80
00:05:55,790 --> 00:05:59,910
Nous aurions un moyen d'inclure l'information d'un

81
00:06:00,950 --> 00:06:04,370
modèle dans un autre modèle en faisant une inclusion là.

82
00:06:04,370 --> 00:06:10,500
C' est donc quelque chose que nous avons demandé de ne pas empêcher.

83
00:06:10,500 --> 00:06:14,990
Maintenant de même, nous pouvons définir la relation suivante

84
00:06:14,990 --> 00:06:18,820
entre le commentaire et les plats.

85
00:06:20,430 --> 00:06:24,720
Donc, lorsque vous définissez une relation avec le commentaire et les plats, alors

86
00:06:24,720 --> 00:06:31,380
laissez-moi le dire relation lb, et nous allons maintenant définir la relation entre le commentaire.

87
00:06:31,380 --> 00:06:35,620
Et comme un commentaire ne peut appartenir qu'à un plat spécifique,

88
00:06:35,620 --> 00:06:40,700
nous allons donc définir qu'il appartient à une relation, et cela appartient

89
00:06:40,700 --> 00:06:46,180
au plat ici et le nom de la propriété pour la relation serait plats.

90
00:06:46,180 --> 00:06:50,226
Et nous n'utiliserons pas de clé étrangère personnalisée,

91
00:06:50,226 --> 00:06:56,067
nous autoriserons la relation à utiliser dans les API REST.

92
00:06:56,067 --> 00:07:01,172
En fait, nous ne voulons pas cela, donc j'aurais dû taper non pour cela,

93
00:07:01,172 --> 00:07:06,026
mais je vais juste aller modifier la relation créée dans mon code là-bas.

94
00:07:06,026 --> 00:07:09,816
Donc, je peux aller dans le fichier comment.jason et

95
00:07:09,816 --> 00:07:13,604
juste changer cela d'un oui à un non là-dedans,

96
00:07:13,604 --> 00:07:19,080
je vais le faire parce que je ne veux pas qu'il soit imbriqué ensuite.

97
00:07:19,080 --> 00:07:20,430
Permettez-moi donc d'aller de l'avant et d'

98
00:07:20,430 --> 00:07:25,400
apporter ce changement dans le commentaire appelé Jason avant que j'oublie de le faire.

99
00:07:25,400 --> 00:07:28,070
Et puis ouvrez le commentaire appelé Jason.

100
00:07:28,070 --> 00:07:33,210
Et vous voyez que dans le commentaire appelé Jason, nous avons cette relation ici et

101
00:07:33,210 --> 00:07:40,810
puis je vais couper cela parce que je ne veux pas que cette imbrication soit faite.

102
00:07:41,860 --> 00:07:48,422
C' est une erreur que j'ai faite en tapant, donc je vais supprimer ça.

103
00:07:48,422 --> 00:07:53,350
La relation suivante que je vais définir est entre le commentaire et

104
00:07:53,350 --> 00:07:54,760
le client.

105
00:07:54,760 --> 00:07:57,540
Laissez-moi encore, tapez relation lb ici.

106
00:07:59,670 --> 00:08:02,970
Nous allons donc définir la relation entre le commentaire et le client.

107
00:08:02,970 --> 00:08:09,076
Un commentaire appartient à un client comme nous nous y attendrions,

108
00:08:09,076 --> 00:08:15,000
et, Ici laissez-moi

109
00:08:15,000 --> 00:08:21,050
entrer explicitement, Une clé étrangère personnalisée.

110
00:08:21,050 --> 00:08:24,350
Je le fais juste pour vous illustrer que je peux

111
00:08:25,400 --> 00:08:28,390
définir une clé étrangère spécifique ici.

112
00:08:28,390 --> 00:08:32,910
Je ne vais pas nicher, et je ne vais pas désactiver ici.

113
00:08:32,910 --> 00:08:36,856
Donc, c'est la relation que je vais définir entre le commentaire et

114
00:08:36,856 --> 00:08:38,210
le client.

115
00:08:38,210 --> 00:08:44,092
Ensuite, Permettez-moi de définir la relation entre le client et le commentaire.

116
00:08:44,092 --> 00:08:49,897
Donc ici, d'un client, un client a beaucoup de commentaires,

117
00:08:49,897 --> 00:08:54,886
et leur nom de propriété je vais entrer comme commentaires.

118
00:08:54,886 --> 00:09:01,576
Et puis, je vais définir la clé étrangère comme CustomerID.

119
00:09:01,576 --> 00:09:07,990
Et je n'ai pas besoin d'un modèle traversant ici, je ne vais pas imbriquer et je ne vais pas désactiver.

120
00:09:07,990 --> 00:09:13,260
Donc maintenant j'ai défini toutes les relations entre les commentaires et

121
00:09:13,260 --> 00:09:16,210
le client, et les commentaires et les plats.

122
00:09:16,210 --> 00:09:20,238
Maintenant, la même chose nous allons travailler sur les favoris.

123
00:09:20,238 --> 00:09:26,113
Maintenant, pour les favoris, Laissez-moi définir

124
00:09:26,113 --> 00:09:33,560
la relation entre les plats et les favoris.

125
00:09:33,560 --> 00:09:39,310
Donc, un plat aurait pu être favoris pour de nombreux utilisateurs,

126
00:09:39,310 --> 00:09:45,470
il a donc beaucoup de relation avec un favori.

127
00:09:45,470 --> 00:09:49,120
Et nous allons utiliser les favoris là-bas, et

128
00:09:49,120 --> 00:09:53,603
nous n'aurons pas besoin d'un modèle traversant et non et non.

129
00:09:53,603 --> 00:09:58,269
Donc, maintenant nous avons défini qu'il a beaucoup de relations entre le plat et

130
00:09:58,269 --> 00:09:59,150
un favori.

131
00:10:00,848 --> 00:10:06,153
Permettez-moi maintenant de définir une relation entre un favori et un plat.

132
00:10:06,153 --> 00:10:11,282
Donc, pour définir la relation entre le favori et

133
00:10:11,282 --> 00:10:15,852
le plat laissez-moi dire favori appartient à plat, et

134
00:10:15,852 --> 00:10:20,995
nous allons utiliser les plats et pas de clé étrangère, pas imbriqué.

135
00:10:25,515 --> 00:10:29,070
Et nous ne désactiverons pas la relation d'être incluse.

136
00:10:31,485 --> 00:10:36,397
Maintenant, nous devrons définir cette relation entre

137
00:10:36,397 --> 00:10:39,560
un favori et un client.

138
00:10:39,560 --> 00:10:47,149
Donc, nous allons dire favori appartient à un client et,

139
00:10:50,393 --> 00:10:55,724
Nous allons définir clé étrangère comme un CustomerID.

140
00:10:55,724 --> 00:11:03,370
Nous n'autoriserons pas l'imbrication de l'API REST et nous ne désactiverons pas.

141
00:11:03,370 --> 00:11:09,430
Maintenant, la dernière relation, Est entre le client et le favori.

142
00:11:10,910 --> 00:11:16,339
Donc, maintenant, nous allons définir la relation entre le client a beaucoup,

143
00:11:18,264 --> 00:11:21,440
Favoris, et ceci,

144
00:11:23,506 --> 00:11:29,194
je vais définir le CustomerID comme la clé étrangère, je n'ai pas besoin d'un modèle traversant,

145
00:11:29,194 --> 00:11:33,433
et je n'autoriserai pas l'imbrication et je ne désactiverai rien.

146
00:11:33,433 --> 00:11:38,353
Donc c'est tout, nous avons défini toutes les relations dont nous avons besoin

147
00:11:38,353 --> 00:11:42,590
entre les commentaires et les clients et les plats.

148
00:11:42,590 --> 00:11:46,680
Entre les favoris, les clients, et les plats.

149
00:11:46,680 --> 00:11:51,080
Maintenant, examinons l'utilisation d'un mixin.

150
00:11:51,080 --> 00:11:57,340
Maintenant, ce mixin que je vais utiliser avec mon serveur Loopback est

151
00:11:57,340 --> 00:12:03,900
un mixin qui ajoute des horodatages à tout ce qui est enregistré ou mis à jour.

152
00:12:03,900 --> 00:12:08,780
Alors rappelez-vous que dans notre serveur Express, nous avons créé et

153
00:12:08,780 --> 00:12:14,550
mis à jour à ajouté automatiquement en utilisant Mongoose.

154
00:12:14,550 --> 00:12:18,399
Maintenant, pour Loopback, j'ai besoin d'utiliser ce

155
00:12:18,399 --> 00:12:22,365
mixin spécifique appelé Lookback ds timestamp mixin.

156
00:12:22,365 --> 00:12:27,130
donc TosDo que je dois d'abord installer le mixin dans mon projet.

157
00:12:27,130 --> 00:12:30,955
Donc, je dirai npm install

158
00:12:30,955 --> 00:12:38,609
loopback-ds-timestamp-mixin —save,

159
00:12:38,609 --> 00:12:44,164
et installer ce module de nœud.

160
00:12:44,164 --> 00:12:48,113
Et une fois que ce module de nœud est installé, comme vous pouvez le voir,

161
00:12:48,113 --> 00:12:51,680
il s'agit du numéro de version 3.4.1 que j'utilise.

162
00:12:51,680 --> 00:12:54,620
Comme ce mixin est installé, je dois entrer et

163
00:12:54,620 --> 00:12:58,760
activer cette utilisation de mixin dans mes modèles.

164
00:12:58,760 --> 00:13:03,970
Pour ce faire, allons au code, dans le code, laissez-moi d'abord ouvrir

165
00:13:03,970 --> 00:13:09,736
ce conflit de modèle adjacent, qui est dans le dossier du serveur.

166
00:13:09,736 --> 00:13:14,716
Donc, dans le modèle confi.json si vous allez ici, vous verrez ces

167
00:13:14,716 --> 00:13:16,900
mixins définis ici.

168
00:13:16,900 --> 00:13:20,090
Donc, nous avons les mixins du serveur de bouclage commun et de bouclage.

169
00:13:20,090 --> 00:13:24,750
Maintenant, je vais ajouter dans le nouveau mixin que je viens d'ajouter ici.

170
00:13:24,750 --> 00:13:31,360
Donc, ce mixin est en.. /node_modules.

171
00:13:31,360 --> 00:13:33,940
Donc, c'est dans le dossier des modules de noeud juste là.

172
00:13:35,894 --> 00:13:45,894
/loopback-ds-timestamp-mixin.

173
00:13:51,953 --> 00:13:58,762
Cela permet à mon serveur Loopback d'utiliser ce mixin dans mon serveur.

174
00:13:58,762 --> 00:14:01,971
Maintenant, non seulement cela, je dois spécifier pour

175
00:14:01,971 --> 00:14:06,810
tous les modèles où je veux que ce mixin soit inclus.

176
00:14:06,810 --> 00:14:11,014
Donc, je vais maintenant dans ce dossier commun, et

177
00:14:11,014 --> 00:14:16,812
dans le dossier commun, nous allons éditer ce fichier comment.json et

178
00:14:16,812 --> 00:14:21,940
dans le fichier comment.json, nous allons ajouter dans le mixin.

179
00:14:21,940 --> 00:14:26,539
Donc, après les propriétés, je vais ajouter dans le mixin comme

180
00:14:26,539 --> 00:14:30,490
synchronisation entre guillemets, vous direz mixins.

181
00:14:33,167 --> 00:14:38,563
:, Et, là,

182
00:14:38,563 --> 00:14:43,657
et à l'intérieur des mixins, nous verrons

183
00:14:43,657 --> 00:14:50,350
TimeStamp, vrai.

184
00:14:51,863 --> 00:14:55,920
Cette même chose que j'ai besoin de coller dans certains des autres modèles alors

185
00:14:55,920 --> 00:14:57,445
laissez-moi simplement copier ceci.

186
00:14:57,445 --> 00:15:03,200
Donc, nous dirons mixins TimeStamp true dans comments.json.

187
00:15:03,200 --> 00:15:07,420
Ensuite, nous irons à dishes.json et

188
00:15:07,420 --> 00:15:11,680
ensuite nous ajouterons cela aussi à dishes.json et

189
00:15:11,680 --> 00:15:16,449
ensuite ils iront à favorite.json,

190
00:15:16,449 --> 00:15:21,390
puis ajouterons dans favorite.json.

191
00:15:21,390 --> 00:15:26,395
Nous allons l'ajouter à readers.json, et

192
00:15:26,395 --> 00:15:30,129
nous l'ajouterons à promotions.json.

193
00:15:32,495 --> 00:15:36,076
Et enregistrez toutes les modifications.

194
00:15:36,076 --> 00:15:41,583
Maintenant, nous allons configurer un peu plus de liste de contrôle d'accès, donc

195
00:15:41,583 --> 00:15:50,020
aller au terminal, laissez-moi taper lb acl pour configurer certaines listes de contrôle d'accès.

196
00:15:50,020 --> 00:15:53,990
Donc, ici pour les plats,

197
00:15:53,990 --> 00:15:59,750
je vais spécifier pour toutes les méthodes et propriétés le droit

198
00:16:01,070 --> 00:16:09,686
Ne peut être fait que par l'utilisateur avec le rôle admin.

199
00:16:11,368 --> 00:16:17,240
C' est donc le premier contrôle d'accès que je configure pour les

200
00:16:17,240 --> 00:16:21,589
plats, puis je fais la même chose pour les leaders.

201
00:16:22,940 --> 00:16:28,673
Toutes les méthodes et les propriétés, écriture, autres,

202
00:16:28,673 --> 00:16:33,819
le rôle admin accorder explicitement l'accès.

203
00:16:33,819 --> 00:16:39,254
Ensuite, pour les promotions aussi,

204
00:16:39,254 --> 00:16:43,853
la même, toutes les méthodes et

205
00:16:43,853 --> 00:16:49,923
propriétés, écriture, et d'autres,

206
00:16:52,023 --> 00:16:57,256
Rôle accorder explicitement l'accès, parce que vous voulez que l'administrateur

207
00:16:57,256 --> 00:17:03,800
soit en mesure d'apporter des modifications aux plats, promotions, ou leaders.

208
00:17:03,800 --> 00:17:09,230
Maintenant, pour les commentaires, les commentaires peuvent être postés par n'importe quel utilisateur enregistré.

209
00:17:09,230 --> 00:17:15,476
Donc, pour les commentaires, permettez-moi de définir l'ACL pour les commentaires.

210
00:17:15,476 --> 00:17:20,610
Nous dirons commentaire, toutes les méthodes et

211
00:17:20,610 --> 00:17:25,909
propriétés, tous les types, tous les utilisateurs,

212
00:17:25,909 --> 00:17:29,560
refusent explicitement l'accès.

213
00:17:29,560 --> 00:17:36,430
Parce qu'on ne veut pas qu'ils soient capables de faire toutes les choses.

214
00:17:36,430 --> 00:17:44,200
Maintenant, ouvrons seulement certaines des opérations à activer par les utilisateurs.

215
00:17:44,200 --> 00:17:47,749
Donc, pour les commentaires, toutes les méthodes et

216
00:17:47,749 --> 00:17:52,330
propriétés, nous dirons l'opération de lecture.

217
00:17:52,330 --> 00:17:58,910
L' opération de lecture pour les commentaires ne sera qu'un utilisateur authentifié.

218
00:17:58,910 --> 00:18:03,995
Ainsi, seuls les utilisateurs qui sont connectés pourront lire les commentaires.

219
00:18:03,995 --> 00:18:09,951
Maintenant de même, laissez-moi définir pour le,

220
00:18:13,120 --> 00:18:17,201
Commentaires, une seule méthode, et

221
00:18:17,201 --> 00:18:21,587
créer, qui peut créer des commentaires ?

222
00:18:23,341 --> 00:18:29,583
Tout utilisateur authentifié, tout utilisateur authentifié peut créer des commentaires.

223
00:18:29,583 --> 00:18:34,204
Donc, nous allons explicitement leur accorder l'accès, maintenant,

224
00:18:34,204 --> 00:18:39,529
le dernier pour les commentaires, Nous allons dire pour

225
00:18:39,529 --> 00:18:43,720
le commentaire, toutes les méthodes et propriétés.

226
00:18:43,720 --> 00:18:48,850
Ecrire, ce qui signifie que, qui est autorisé à écrire le commentaire ?

227
00:18:48,850 --> 00:18:55,080
Seul l'utilisateur propriétaire de cet objet peut apporter des modifications au commentaire.

228
00:18:55,080 --> 00:19:00,080
Donc, seul l'utilisateur qui a soumis le commentaire peut apporter des modifications au commentaire,

229
00:19:00,080 --> 00:19:04,271
soit modifier ou supprimer le commentaire, donc c'est ce que nous allons autoriser.

230
00:19:04,271 --> 00:19:09,699
Même ensemble d'opérations, appliquons-les aux favoris.

231
00:19:09,699 --> 00:19:14,703
Donc, pour les favoris, puisque nous n'avons ajouté

232
00:19:14,703 --> 00:19:20,680
aucun des contrôles d'accès, donc pour les favoris,

233
00:19:20,680 --> 00:19:25,545
toutes les méthodes et propriétés, tous les types,

234
00:19:25,545 --> 00:19:30,699
tous les utilisateurs, refusent explicitement l'accès là.

235
00:19:30,699 --> 00:19:34,734
Pour les favoris, nous allons définir pour

236
00:19:34,734 --> 00:19:39,047
toutes les méthodes et propriétés, lire,

237
00:19:39,047 --> 00:19:44,480
uniquement pour l'utilisateur propriétaire de cet objet.

238
00:19:44,480 --> 00:19:46,910
Ainsi, seul l'utilisateur peut lire

239
00:19:46,910 --> 00:19:51,186
ses propres favoris, aucun autre utilisateur ne devrait pouvoir voir ses propres favoris.

240
00:19:51,186 --> 00:19:56,616
Maintenant, le troisième est la création de favoris,

241
00:19:56,616 --> 00:20:02,192
donc pour la création de favoris, nous dirons pour

242
00:20:02,192 --> 00:20:07,035
favori, une seule méthode, créer,

243
00:20:07,035 --> 00:20:13,510
tout utilisateur authentifié peut créer un commentaire.

244
00:20:13,510 --> 00:20:19,980
Et enfin, pour un favori, toutes les méthodes et

245
00:20:19,980 --> 00:20:26,280
propriétés, l'opération d'écriture, seulement pour l'utilisateur propriétaire de cet objet.

246
00:20:26,280 --> 00:20:30,621
Donc, seul l'utilisateur qui a entré le favori pour

247
00:20:30,621 --> 00:20:35,061
lui-même peut éditer ou supprimer ces favoris, c'est tout.

248
00:20:35,061 --> 00:20:39,288
Nous avons donc maintenant mis en place tous les contrôles d'accès et

249
00:20:39,288 --> 00:20:43,530
toutes les différentes relations pour notre application.

250
00:20:45,200 --> 00:20:49,083
Commençons maintenant l'API Rest du serveur,

251
00:20:49,083 --> 00:20:52,102
puis explorons certains de ces détails.

252
00:20:52,102 --> 00:20:57,142
Maintenant, aller à notre application dans le navigateur, donc

253
00:20:57,142 --> 00:21:02,908
nous allons à ce LoopBack Explorer dans le navigateur ici.

254
00:21:02,908 --> 00:21:08,437
Dans l'explorateur LoopBack, ce que je vais faire en premier, c'est de me connecter en tant qu'administrateur.

255
00:21:08,437 --> 00:21:15,960
Donc, nous allons nous connecter en tant qu'administrateur en allant dans le /customers/login.

256
00:21:15,960 --> 00:21:23,684
Et puis ici, nous allons taper le nom d'utilisateur

257
00:21:27,188 --> 00:21:33,581
, Admin

258
00:21:36,667 --> 00:21:41,781
, Mot de passe,

259
00:21:41,781 --> 00:21:46,655
Et nous connecter, et une fois que nous nous sommes connectés, je vais juste copier cet ID,

260
00:21:46,655 --> 00:21:49,910
parce que c'est le jeton d'accès.

261
00:21:49,910 --> 00:21:55,074
Et je vais entrer ici, puis définir le jeton d'accès avec

262
00:21:55,074 --> 00:22:00,461
ce nouveau jeton d'accès que je viens d'obtenir, après cela,

263
00:22:02,944 --> 00:22:07,223
Laissez-moi poster quelques plats sur mon serveur, alors

264
00:22:07,223 --> 00:22:10,983
maintenant que je suis connecté en tant qu'administrateur,

265
00:22:10,983 --> 00:22:16,250
je devrais pouvoir poster de la vaisselle sur mon serveur.

266
00:22:16,250 --> 00:22:21,320
Donc, je vais ouvrir post, et me rappeler que je vous avais donné le fichier DB.json,

267
00:22:21,320 --> 00:22:26,930
donc nous pouvons simplement copier et coller les plats dans le champ de données ici.

268
00:22:26,930 --> 00:22:32,107
C' est mon premier plat, et au moment où je poste,

269
00:22:32,107 --> 00:22:37,842
il reviendra avec les informations du plat ici.

270
00:22:37,842 --> 00:22:42,680
Et notez qu'il ajoute automatiquement dans les champs CreatedAt et UpdateDAT ici.

271
00:22:58,252 --> 00:23:04,798
C' est mon deuxième plat, donc finalement, j'ai terminé d'entrer tous les plats,

272
00:23:04,798 --> 00:23:10,770
tous les leaders, et toutes les promotions, et nous avons tous terminé.

273
00:23:10,770 --> 00:23:13,400
Allons donc maintenant et

274
00:23:13,400 --> 00:23:19,100
inscrivons un nouveau client dans le système.

275
00:23:19,100 --> 00:23:23,910
Donc, pour ce faire, laissez-moi supprimer ce

276
00:23:23,910 --> 00:23:28,970
jeton d'accès, puis nous enregistrerons un nouveau client dans le système.

277
00:23:28,970 --> 00:23:35,640
Donc, pour ce faire, nous allons poster des clients, puis pour les données,

278
00:23:35,640 --> 00:23:42,560
laissez-moi simplement cliquer sur cet exemple de valeur ici, puis le poster ici.

279
00:23:42,560 --> 00:23:46,226
Et pour les données, le prénom,

280
00:23:46,226 --> 00:23:50,788
laissez-moi m'inscrire avec mon prénom.

281
00:23:50,788 --> 00:23:54,848
Donc, ce serait un

282
00:23:54,848 --> 00:23:59,760
utilisateur non-administrateur que je suis inscrit, et,

283
00:24:04,270 --> 00:24:12,430
Et cet e-mail a vérifié que je devrais supprimer cela d'ici, Mais je devrais inclure le,

284
00:24:16,215 --> 00:24:22,380
champ mot de passe ici, afin que je puisse enregistrer l'utilisateur.

285
00:24:22,380 --> 00:24:26,387
Donc, j'enregistre un nouvel utilisateur ordinaire ici.

286
00:24:26,387 --> 00:24:32,422
Donc, quand je m'inscrit, il revient pour confirmer que ce nouvel

287
00:24:32,422 --> 00:24:37,880
utilisateur enregistré est ajouté, et me donne également un ID pour cet utilisateur.

288
00:24:37,880 --> 00:24:43,475
Maintenant, permettez-moi de me connecter en tant qu'utilisateur enregistré, puis de poster quelques commentaires.

289
00:24:45,510 --> 00:24:50,757
Donc, pour me connecter en tant qu'utilisateur enregistré, je vais descendre à la connexion du client,

290
00:24:50,757 --> 00:24:56,822
et pour le nom d'utilisateur, je vais taper mon nom et

291
00:24:56,822 --> 00:25:03,440
le mot de passe, puis quand je me connecte, il reviendra et me donnera un identifiant.

292
00:25:03,440 --> 00:25:09,281
Maintenant, notez que cet utilisateur particulier est un utilisateur ordinaire et non un administrateur,

293
00:25:09,281 --> 00:25:15,130
donc cet utilisateur ne peut que poster des commentaires et modifier ses propres commentaires.

294
00:25:15,130 --> 00:25:19,030
Et ou post-favoris et éditer ses propres favoris.

295
00:25:19,030 --> 00:25:23,806
Ainsi, lorsque vous publiez l'utilisateur, vous verrez qu'il s'agit de l'ID utilisateur renvoyé ici,

296
00:25:23,806 --> 00:25:25,511
shis est l'ID de l'utilisateur.

297
00:25:25,511 --> 00:25:29,921
Donc, nous aurions besoin de cela chaque fois que nous posons des commentaires ou

298
00:25:29,921 --> 00:25:32,800
chaque fois que nous posons nos favoris.

299
00:25:34,030 --> 00:25:38,540
Donc, pour poster un commentaire pour cet utilisateur, donc

300
00:25:38,540 --> 00:25:42,330
pour poster un commentaire, permettez-moi de poster quelques commentaires au nom de cet utilisateur.

301
00:25:42,330 --> 00:25:47,400
Donc, nous allons à Commentaires, puis nous posterons quelques commentaires ici.

302
00:25:47,400 --> 00:25:50,334
Donc, pour poster un commentaire que vous remarquez,

303
00:25:50,334 --> 00:25:54,134
nous devons fournir trois informations.

304
00:25:54,134 --> 00:25:59,770
Nous devons fournir le CustomerID, le Dish.ID, la note et le commentaire.

305
00:25:59,770 --> 00:26:03,180
Donc, pour le CustomerID, nous venons de nous connecter, donc

306
00:26:03,180 --> 00:26:07,060
si vous allez chez les clients et en bas ici en bas.

307
00:26:07,060 --> 00:26:11,939
Nous allons obtenir le CustomerID ici, alors laissez-moi copier l'UserID à partir d'ici.

308
00:26:11,939 --> 00:26:18,752
Ensuite, allez dans la section de publication des commentaires

309
00:26:18,752 --> 00:26:23,673
, puis collez le CustomerID dedans.

310
00:26:23,673 --> 00:26:25,830
Laisse-moi aller chercher un plat.

311
00:26:27,470 --> 00:26:34,723
Donc, si vous allez à, Plats et puis vous faites un obtenir sur la vaisselle,

312
00:26:34,723 --> 00:26:39,538
vous obtiendrez tous les plats qui sont dans le système.

313
00:26:39,538 --> 00:26:45,235
Donc, à partir de cela, laissez-moi sélectionner le

314
00:26:47,635 --> 00:26:51,970
, Premier plat, donc je vais juste prendre l'ID du plat.

315
00:26:51,970 --> 00:26:55,087
Ensuite, pour poster les commentaires, nous allons simplement aller à Commentaires,

316
00:26:56,610 --> 00:26:59,960
Poster où nous composons notre commentaire.

317
00:26:59,960 --> 00:27:03,230
Et puis je vais coller la carte d'identité du plat là-dedans.

318
00:27:03,230 --> 00:27:08,440
Et pour la note, Je vais changer cette note à 4 et,

319
00:27:14,109 --> 00:27:20,377
Juste poster, Ce commentaire,

320
00:27:20,377 --> 00:27:24,900
donc j'ai posté un commentaire pour ce plat particulier.

321
00:27:24,900 --> 00:27:28,030
Permettez-moi de poster un commentaire de plus pour un autre plat.

322
00:27:30,614 --> 00:27:32,710
Laisse-moi mettre la main sur ce second plat.

323
00:27:38,222 --> 00:27:44,548
Donc, voici l'ID du deuxième plat donc, encore une fois, revenir à Commentaires.

324
00:27:49,110 --> 00:27:51,699
Laisse-moi changer le DisHid ici.

325
00:27:51,699 --> 00:27:56,874
Et puis, Permettez-moi de changer les commentaires afin

326
00:27:56,874 --> 00:28:01,976
que vous voyez que c'est un commentaire différent pour un plat différent.

327
00:28:01,976 --> 00:28:07,182
Lorsque je poster le commentaire, vous verrez qu'il reviendra avec cette réponse ici,

328
00:28:07,182 --> 00:28:11,422
avec la note et le plat spécifique et le CustomerID et ainsi de suite.

329
00:28:11,422 --> 00:28:14,572
Donc, j'ai maintenant posté deux commentaires pour deux plats différents ici.

330
00:28:16,113 --> 00:28:23,040
Laisse-moi, fais ces deux-là comme mes plats préférés.

331
00:28:23,040 --> 00:28:25,750
Donc, pour ce faire, laissez-moi aller à Favoris.

332
00:28:35,658 --> 00:28:38,350
En descendant vers les favoris.

333
00:28:38,350 --> 00:28:40,310
Laissez-moi poster quelques favoris.

334
00:28:40,310 --> 00:28:46,327
Donc, pour poster un favori à nouveau, je vais dans les favoris de poste ici.

335
00:28:46,327 --> 00:28:52,140
Ensuite, je clique sur cela et puis je vais coller dans un disHID,

336
00:28:52,140 --> 00:28:58,073
pour le CustomerID, laissez-moi juste aller au client ici,

337
00:28:58,073 --> 00:29:01,295
où je me suis connecté au client.

338
00:29:01,295 --> 00:29:04,402
Donc, nous allons obtenir l'UserID à partir de là.

339
00:29:04,402 --> 00:29:08,379
Et ceci est un CustomerID, alors laissez-moi aller aux Favoris.

340
00:29:11,044 --> 00:29:16,398
Et puis, Dans les Favoris

341
00:29:16,398 --> 00:29:22,245
laissez-moi tester le CustomerID ici, puis poster ceci dans mes favoris.

342
00:29:22,245 --> 00:29:26,831
Donc, quand je poste cela dans mes favoris, il répond avec ceci afin que

343
00:29:26,831 --> 00:29:32,997
vous puissiez voir que le disHID et CustomerID et le FavoriteID ont été affichés ici.

344
00:29:32,997 --> 00:29:36,067
Laissez-moi poster un plat de plus à mes favoris alors laissez-moi aller à la,

345
00:29:40,771 --> 00:29:43,675
Plats ici, j'ai un autre plat.

346
00:29:43,675 --> 00:29:49,734
Alors laissez-moi copier le, ID du plat et aller à mes favoris

347
00:29:49,734 --> 00:29:57,140
, puis remplacer l'ID du dishe par ce nouveau plat, puis poster ça.

348
00:29:57,140 --> 00:30:01,004
Alors maintenant je devrais avoir deux favoris dans mon groupe.

349
00:30:03,416 --> 00:30:08,097
Merveilleux, donc maintenant nous avons quelques favoris,

350
00:30:08,097 --> 00:30:13,454
un tas de plats, quelques commentaires, tous affichés dans.

351
00:30:13,454 --> 00:30:15,168
Maintenant, en quoi est-ce utile ?

352
00:30:15,168 --> 00:30:22,554
Laissez-moi, Fermez tout cela et puis vous montrera comment cela peut être utile.

353
00:30:22,554 --> 00:30:27,238
Donc, maintenant quand je reçois de la vaisselle, donc par exemple,

354
00:30:27,238 --> 00:30:31,096
quand je veux oublier un plat spécifique.

355
00:30:34,617 --> 00:30:41,440
Laisse-moi prendre ce premier plat ici, laisse-moi copier l'identification du plat et,

356
00:30:47,206 --> 00:30:50,900
je peux récupérer ce plat spécifique.

357
00:30:50,900 --> 00:30:55,089
Donc ici vous voyez que je vais à /plates/id donc

358
00:30:55,089 --> 00:30:59,489
ici, quand je veux récupérer ce plat spécifique.

359
00:30:59,489 --> 00:31:04,263
Je peux mettre le DisHID là, puis l'essayer et

360
00:31:04,263 --> 00:31:07,595
là, je reçois le DisHID ici.

361
00:31:07,595 --> 00:31:12,850
Maintenant, si je veux inclure les commentaires du plat, alors dans le filtre,

362
00:31:15,876 --> 00:31:20,814
je devrais taper inclure entre

363
00:31:20,814 --> 00:31:25,286
guillemets, puis entre parenthèses je spécifie,

364
00:31:27,990 --> 00:31:29,850
Le nom de,

365
00:31:33,392 --> 00:31:38,793
La relation que je veux inclure dans cela,

366
00:31:38,793 --> 00:31:42,540
donc quand je dis inclure des commentaires.

367
00:31:42,540 --> 00:31:47,490
Donc, c'est comme les Mongols peuplent, il agit de la même manière.

368
00:31:47,490 --> 00:31:54,666
Donc, quand je dis inclure des commentaires et puis récupérer le plat,

369
00:31:54,666 --> 00:31:59,651
remarquez que lorsque le plat est récupéré,

370
00:32:01,219 --> 00:32:05,350
Ici, vous obtenez le plat mais aussi vous obtenez un tableau de commentaires ici. C'

371
00:32:06,520 --> 00:32:11,395
est ainsi que vous pouvez remplir les détails de la relation

372
00:32:11,395 --> 00:32:15,160
que vous avez avec un autre élément ici.

373
00:32:15,160 --> 00:32:18,830
Maintenant, de même, aller aux commentaires, par exemple.

374
00:32:18,830 --> 00:32:24,365
Dans les commentaires aussi, lorsque je récupère les commentaires, je peux spécifier dans le filtre.

375
00:32:24,365 --> 00:32:29,137
Donc, quand je dis juste des commentaires GET, cela

376
00:32:29,137 --> 00:32:34,460
ramènera tous les commentaires qui ont été postés.

377
00:32:34,460 --> 00:32:40,780
Maintenant, si je veux remplir les informations DisHID et CustomerID, je peux dire filtre.

378
00:32:40,780 --> 00:32:45,675
Dans le filtre, je peux dire inclure.

379
00:32:45,675 --> 00:32:50,682
Et puis entre parenthèses, je peux dire des plats parce

380
00:32:50,682 --> 00:32:57,436
que c'est la relation que j'ai définie dans les commentaires et

381
00:32:57,436 --> 00:33:01,761
les plats, puis les plats et le client.

382
00:33:01,761 --> 00:33:06,628
Et quand je récupère cette information, vous verrez que dans les commentaires retournés,

383
00:33:06,628 --> 00:33:10,311
pour chaque commentaire, vous remarquerez que le commentaire est donné,

384
00:33:10,311 --> 00:33:14,066
puis les informations de plat correspondantes sont également remplies, et

385
00:33:14,066 --> 00:33:18,990
les informations de client correspondantes sont également remplies pour chacun des commentaires.

386
00:33:18,990 --> 00:33:25,040
De cette façon, nous pouvons maintenant remplir les deux relations que nous avons définies à partir

387
00:33:25,040 --> 00:33:30,030
des plats ici automatiquement, comme indiqué ici.

388
00:33:30,030 --> 00:33:33,662
De même, pour les favoris,

389
00:33:33,662 --> 00:33:37,943
lorsque nous récupérons les favoris,

390
00:33:37,943 --> 00:33:42,886
nous dirons les favoris et un ID spécifique ici.

391
00:33:42,886 --> 00:33:46,084
Et puis nous pouvons ensuite filtrer, afin

392
00:33:46,084 --> 00:33:50,910
que le favori spécifique puisse être récupéré.

393
00:33:50,910 --> 00:33:55,067
Vous ne pouvez pas récupérer tous les favoris car ils pourraient être des favoris d'autres

394
00:33:55,067 --> 00:33:58,992
utilisateurs également dans cette liste, donc nous ne serons pas en mesure de faire un GET sur tous les favoris.

395
00:33:58,992 --> 00:34:03,950
Mais au lieu de cela, lorsque nous récupérons ceci, vous pouvez demander

396
00:34:03,950 --> 00:34:09,650
que les informations soient remplies ici en fonction des relations.

397
00:34:09,650 --> 00:34:14,403
Donc, nous pouvons dire, en guillemets, (« inclure » : et les crochets écrits.

398
00:34:14,403 --> 00:34:21,605
Nous pouvons dire ["plats », « client"]),

399
00:34:25,296 --> 00:34:29,382
Et récupérer les informations.

400
00:34:29,382 --> 00:34:32,828
Donc, vous remarquerez qu'ici, dans le corps de réponse,

401
00:34:32,828 --> 00:34:36,583
vous obtenez le favori, mais aussi le plat

402
00:34:36,583 --> 00:34:40,700
correspondant et les informations du client correspondant remplies ici.

403
00:34:40,700 --> 00:34:45,720
C' est ainsi que nous pouvons récupérer des informations supplémentaires

404
00:34:45,720 --> 00:34:50,410
à partir de notre site de serveur si nécessaire.

405
00:34:50,410 --> 00:34:53,194
Avec cela, nous complétons cet exercice.

406
00:34:53,194 --> 00:34:59,730
Dans cet exercice, je vous ai montré comment nous pouvons définir diverses relations,

407
00:34:59,730 --> 00:35:04,920
puis être en mesure de récupérer des informations, et également utiliser ce

408
00:35:04,920 --> 00:35:10,250
filtre d'inclusion afin d'inclure les informations supplémentaires de cette relation dans

409
00:35:10,250 --> 00:35:16,210
le document lorsque vous récupérez le document ou un ensemble de documents.

410
00:35:16,210 --> 00:35:18,880
Avec cela, nous complétons cet exercice.

411
00:35:18,880 --> 00:35:23,400
Donc, dans ces trois exercices que nous avons fait jusqu'à présent avec LoopBack, j'ai

412
00:35:23,400 --> 00:35:29,397
illustré divers aspects de la façon dont vous pouvez configurer et construire votre serveur LoopBack.

413
00:35:29,397 --> 00:35:32,720
Avec cela, nous complétons cet exercice.

414
00:35:32,720 --> 00:35:33,974
C' est un bon moment pour

415
00:35:33,974 --> 00:35:37,542
vous de faire un commentaire GET avec le message LoopBack relations.

416
00:35:37,542 --> 00:35:43,900
[ MUSIQUE]