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

2
00:00:04,580 --> 00:00:09,730
Nell'esercizio precedente abbiamo portato i nostri server di loopback fino ad un certo stadio.

3
00:00:09,730 --> 00:00:13,549
Siamo ora in grado di collegare i nostri server di loopback al database mongolab,

4
00:00:15,040 --> 00:00:19,290
il database funge da fonte di dati per i nostri server di loopback.

5
00:00:19,290 --> 00:00:24,042
Definiamo anche gli elenchi controllati di accesso per controllare l'accesso al raggio,

6
00:00:24,042 --> 00:00:28,010
resto sono qui, in parti con il nostro server di loopback.

7
00:00:28,010 --> 00:00:31,590
In questo esercizio esploreremo le relazioni di loopback.

8
00:00:31,590 --> 00:00:36,510
Ora possiamo definire i modelli e definire le relazioni tra i modelli.

9
00:00:36,510 --> 00:00:40,280
Quindi, per esempio, prendiamo l'esempio di un commento.

10
00:00:40,280 --> 00:00:44,860
Quando pubblichi un commento su un piatto, il commento è correlato al piatto.

11
00:00:44,860 --> 00:00:46,980
Un commento appartiene a un piatto.

12
00:00:46,980 --> 00:00:50,610
Allo stesso modo, un commento viene pubblicato da un utente specifico.

13
00:00:50,610 --> 00:00:55,730
Quindi il commento appartiene alla relazione con questo specifico utente.

14
00:00:55,730 --> 00:00:59,370
Ora, quando si guarda la relazione nella direzione inversa,

15
00:00:59,370 --> 00:01:02,555
un piatto può avere più commenti associati ad esso, e

16
00:01:02,555 --> 00:01:05,616
allo stesso modo, un utente potrebbe aver postato più commenti.

17
00:01:05,616 --> 00:01:10,512
Quindi questi sono i più grandi tipi di relazioni che è possibile definire tra

18
00:01:10,512 --> 00:01:14,640
i vari modelli all'interno del nostro server di loopback.

19
00:01:14,640 --> 00:01:18,930
Inoltre vedremo l'uso di un loopback misto,

20
00:01:18,930 --> 00:01:23,460
che ci consente di aggiungere proprietà aggiuntive ai nostri modelli.

21
00:01:23,460 --> 00:01:28,850
Alla fine di questo esercizio avrai un server loopback praticamente completo,

22
00:01:28,850 --> 00:01:32,770
che potremo quindi connetterci al nostro client angolare ed

23
00:01:32,770 --> 00:01:37,400
essere in grado di utilizzarlo come back-end per il nostro client angolare.

24
00:01:39,650 --> 00:01:46,350
Per continuare con l'esercizio, nella cartella del nostro server di loopback

25
00:01:46,350 --> 00:01:50,910
creiamo un nuovo modello per un commento.

26
00:01:50,910 --> 00:01:55,040
Quindi questo modello definirà come

27
00:01:56,610 --> 00:02:01,930
commento, e in questo caso quel modello viene salvato anche

28
00:02:01,930 --> 00:02:07,030
in MongoDB e sarà come un modello persistente,

29
00:02:07,030 --> 00:02:12,040
e esporremo il commento tramite l'API REST e

30
00:02:13,580 --> 00:02:18,180
la cartella del modello è nella cartella comune e per

31
00:02:18,180 --> 00:02:22,170
questo commento avremo due proprietà associate a esso.

32
00:02:22,170 --> 00:02:28,489
E la prima proprietà è Valutazione.

33
00:02:30,647 --> 00:02:34,499
Che è del tipo Number.

34
00:02:34,499 --> 00:02:39,300
Questo è richiesto e il valore predefinito, lo lascerò come 5.

35
00:02:39,300 --> 00:02:45,988
E la seconda proprietà sarebbe Comment, che è della stringa di tipo.

36
00:02:45,988 --> 00:02:52,410
Questo è obbligatorio e il valore predefinito è vuoto.

37
00:02:52,410 --> 00:02:56,320
Quindi ogni commento avrà queste due proprietà, valutazione e commento,

38
00:02:56,320 --> 00:02:57,800
associate ad esso.

39
00:02:57,800 --> 00:03:01,190
Inoltre, dobbiamo ora definire la relazione tra il commento e

40
00:03:01,190 --> 00:03:06,000
l'utente che sta inviando il commento, e anche il commento e

41
00:03:06,000 --> 00:03:10,260
il piatto con cui questo commento è associato.

42
00:03:10,260 --> 00:03:15,010
Allo stesso modo, abbiamo visto nell'esercizio precedente che hanno aggiunto

43
00:03:15,010 --> 00:03:17,360
i loro preferiti per un utente.

44
00:03:17,360 --> 00:03:22,610
Quindi, per definire i preferiti, lasciami ancora definire un modello,

45
00:03:22,610 --> 00:03:29,390
e quel nome del modello è Favorite e questo è anche salvato in MongoDB,

46
00:03:29,390 --> 00:03:33,870
e questo è anche un PersistedModel, e

47
00:03:33,870 --> 00:03:39,120
esporremo il favorito per il resto API ed è nella cartella comune.

48
00:03:39,120 --> 00:03:43,020
Ora il favorito in sé non ha bisogno di alcuna proprietà specifica perché tutto

49
00:03:43,020 --> 00:03:48,770
il favorito fa è associa l'utente specifico a questo piatto specifico.

50
00:03:48,770 --> 00:03:52,790
Quindi il favorito qui sta per essere usato semplicemente come un ponte tra l'utente

51
00:03:52,790 --> 00:03:53,770
e il piatto.

52
00:03:53,770 --> 00:03:58,385
Quindi useremo il favorito come un modo per definire le relazioni tra il piatto e

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

54
00:04:00,320 --> 00:04:02,710
Quindi non ha proprietà specifiche.

55
00:04:02,710 --> 00:04:07,970
Così ora abbiamo aggiunto due modelli nel nostro server di loopback.

56
00:04:07,970 --> 00:04:10,950
Ora, iniziamo a definire le relazioni del modello.

57
00:04:10,950 --> 00:04:13,110
Ora, come ho spiegato in precedenza,

58
00:04:13,110 --> 00:04:17,260
ci sono vari tipi di relazioni modello che possiamo definire.

59
00:04:17,260 --> 00:04:22,230
Iniziamo con la definizione del rapporto tra un piatto e un commento.

60
00:04:22,230 --> 00:04:27,820
Quindi, per definire un modello in loopback, diremo, relazione lb.

61
00:04:27,820 --> 00:04:29,890
E quando arriva la relazione,

62
00:04:29,890 --> 00:04:34,370
dobbiamo specificare il modello da cui creare la relazione.

63
00:04:34,370 --> 00:04:38,700
Quindi, in primo luogo, creeremo una relazione tra un piatto.

64
00:04:38,700 --> 00:04:45,080
Quindi dai piatti, e un piatto potrebbe avere molti commenti associati con esso,

65
00:04:45,080 --> 00:04:50,160
quindi è per questo che il tipo di relazione ha molti

66
00:04:50,160 --> 00:04:56,480
ed è associato con un commento e il nome della proprietà per

67
00:04:56,480 --> 00:05:02,060
la relazione lo lascerò come predefinito con solo commento con

68
00:05:04,320 --> 00:05:09,470
una piccola lettera c. specifica chiave esterna personalizzata se vogliamo.

69
00:05:09,470 --> 00:05:13,600
Se non lo facciamo, loopback assegnerà automaticamente la chiave esterna,

70
00:05:13,600 --> 00:05:18,290
che non sarebbe altro che i commenti e un ID ad essa associato.

71
00:05:18,290 --> 00:05:21,700
Quindi guarderà indietro per definirlo automaticamente.

72
00:05:21,700 --> 00:05:25,860
Possiamo anche avere attraverso modelli, che in questo caso non è applicabile.

73
00:05:25,860 --> 00:05:31,490
Un modello attraverso ci permetterà di definire la relazione con uno e con un altro modello e

74
00:05:31,490 --> 00:05:36,900
in questo caso, non abbiamo tale relazione, quindi diremo solo di no e

75
00:05:36,900 --> 00:05:40,670
non nidificheremo l'API REST, e inoltre,

76
00:05:40,670 --> 00:05:45,430
disabiliteremo la relazione da includere.

77
00:05:45,430 --> 00:05:48,480
E così, abbiamo specificato

78
00:05:48,480 --> 00:05:53,000
che la disabilitazione della relazione dall'essere incluso è no.

79
00:05:53,000 --> 00:05:55,790
Più tardi vedrai perché questo è importante.

80
00:05:55,790 --> 00:05:59,910
Avremmo un modo di includere informazioni da un

81
00:06:00,950 --> 00:06:04,370
modello in un altro modello facendo un inclusione lì.

82
00:06:04,370 --> 00:06:10,500
Questo è un aspetto che abbiamo chiesto di non essere impedito.

83
00:06:10,500 --> 00:06:14,990
Ora allo stesso modo, possiamo definire il prossimo rapporto

84
00:06:14,990 --> 00:06:18,820
tra commento e piatti.

85
00:06:20,430 --> 00:06:24,720
Quindi, quando si definisce una relazione con il commento e i piatti, quindi

86
00:06:24,720 --> 00:06:31,380
lasciatemi dire lb relazione, e ora definiremo la relazione tra il commento.

87
00:06:31,380 --> 00:06:35,620
E poiché un commento può appartenere solo a un piatto specifico, quindi

88
00:06:35,620 --> 00:06:40,700
definiremo che appartiene a una relazione, e questo appartiene

89
00:06:40,700 --> 00:06:46,180
al piatto qui e il nome della proprietà per la relazione sarebbe piatti.

90
00:06:46,180 --> 00:06:50,226
E non useremo una chiave esterna personalizzata,

91
00:06:50,226 --> 00:06:56,067
permetteremo che la relazione venga utilizzata nelle API REST.

92
00:06:56,067 --> 00:07:01,172
In realtà non lo vogliamo, quindi avrei dovuto digitare no per quello,

93
00:07:01,172 --> 00:07:06,026
ma andrò e modificherò la relazione creata nel mio codice lì.

94
00:07:06,026 --> 00:07:09,816
Quindi posso andare nel file comment.jason e

95
00:07:09,816 --> 00:07:13,604
cambiarlo da un sì a un no lì dentro,

96
00:07:13,604 --> 00:07:19,080
lo farò perché non voglio che venga nidificato dopo.

97
00:07:19,080 --> 00:07:20,430
Quindi lasciami andare avanti e

98
00:07:20,430 --> 00:07:25,400
fare quel cambiamento nel commento chiamato Jason prima che mi dimentichi di farlo.

99
00:07:25,400 --> 00:07:28,070
E poi apri il commento chiamato Jason.

100
00:07:28,070 --> 00:07:33,210
E vedi che nel commento chiamato Jason abbiamo questa relazione qui e

101
00:07:33,210 --> 00:07:40,810
poi ho intenzione di tagliare questo fuori perché non voglio che il nidificazione sia fatto.

102
00:07:41,860 --> 00:07:48,422
Questo è un errore che ho fatto durante la digitazione, quindi lo cancellerò.

103
00:07:48,422 --> 00:07:53,350
La prossima relazione che ho intenzione di definire è tra il commento e

104
00:07:53,350 --> 00:07:54,760
il cliente.

105
00:07:54,760 --> 00:07:57,540
Permettetemi di nuovo, digitate lb relazione qui.

106
00:07:59,670 --> 00:08:02,970
Quindi definiremo il rapporto tra il commento e il cliente.

107
00:08:02,970 --> 00:08:09,076
Un commento appartiene a un cliente come ci aspetteremmo,

108
00:08:09,076 --> 00:08:15,000
e, Qui lasciami

109
00:08:15,000 --> 00:08:21,050
entrare esplicitamente, Una chiave esterna personalizzata.

110
00:08:21,050 --> 00:08:24,350
Lo sto facendo solo per illustrarti che posso

111
00:08:25,400 --> 00:08:28,390
definire una chiave esterna specifica qui.

112
00:08:28,390 --> 00:08:32,910
Non nidierò, e non disabiliterò qui.

113
00:08:32,910 --> 00:08:36,856
Quindi, questa è la relazione che definirò tra il commento e

114
00:08:36,856 --> 00:08:38,210
il cliente.

115
00:08:38,210 --> 00:08:44,092
Successivamente, Permettetemi di definire la relazione tra il cliente e il commento.

116
00:08:44,092 --> 00:08:49,897
Quindi qui, da un cliente, un cliente ha molti commenti,

117
00:08:49,897 --> 00:08:54,886
e il loro nome della proprietà inserirò come commenti.

118
00:08:54,886 --> 00:09:01,576
E poi, definirò la chiave esterna come CustomerID.

119
00:09:01,576 --> 00:09:07,990
E non ho bisogno di un modello passante qui, non nidierò e non disabiliterò.

120
00:09:07,990 --> 00:09:13,260
Così ora ho definito tutte le relazioni tra i commenti e

121
00:09:13,260 --> 00:09:16,210
il cliente, e i commenti e i piatti.

122
00:09:16,210 --> 00:09:20,238
Ora, la stessa cosa lavoriamo sui preferiti.

123
00:09:20,238 --> 00:09:26,113
Ora, per i favoriti, Permettetemi di definire

124
00:09:26,113 --> 00:09:33,560
il rapporto tra i piatti e i preferiti.

125
00:09:33,560 --> 00:09:39,310
Quindi un piatto avrebbe potuto essere favoriti per molti utenti,

126
00:09:39,310 --> 00:09:45,470
quindi ha molte relazioni con un favorito.

127
00:09:45,470 --> 00:09:49,120
E useremo i preferiti lì, e

128
00:09:49,120 --> 00:09:53,603
non avremo bisogno di un modello passante e no e no.

129
00:09:53,603 --> 00:09:58,269
Quindi, ora abbiamo definito che ha molte relazioni tra il piatto e

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

131
00:10:00,848 --> 00:10:06,153
Permettetemi ora di definire una relazione tra un favorito e un piatto.

132
00:10:06,153 --> 00:10:11,282
Quindi, per definire il rapporto tra il favorito e

133
00:10:11,282 --> 00:10:15,852
il piatto fammi dire preferito appartiene al piatto, e

134
00:10:15,852 --> 00:10:20,995
useremo i piatti e nessuna chiave esterna, non annidata.

135
00:10:25,515 --> 00:10:29,070
E non disabiliteremo la relazione da includere.

136
00:10:31,485 --> 00:10:36,397
Ora, dovremo definire quella relazione tra

137
00:10:36,397 --> 00:10:39,560
un favorito e un cliente.

138
00:10:39,560 --> 00:10:47,149
Quindi diremo preferito appartiene a un cliente e,

139
00:10:50,393 --> 00:10:55,724
Lo definiremo chiave esterna come CustomerID.

140
00:10:55,724 --> 00:11:03,370
Non consentiremo la nidificazione dell'API REST e non disabiliteremo.

141
00:11:03,370 --> 00:11:09,430
Ora l'ultima relazione, e' tra il cliente e il favorito.

142
00:11:10,910 --> 00:11:16,339
Quindi, ora definiremo la relazione tra il cliente ha molti,

143
00:11:18,264 --> 00:11:21,440
Preferiti, e questo,

144
00:11:23,506 --> 00:11:29,194
definirò il CustomerID come chiave esterna, non ho bisogno di un modello passante,

145
00:11:29,194 --> 00:11:33,433
e non permetterò il nidificazione e non disabiliterò nulla.

146
00:11:33,433 --> 00:11:38,353
Così è tutto, abbiamo definito tutte le relazioni di cui abbiamo bisogno

147
00:11:38,353 --> 00:11:42,590
tra i commenti e i clienti e i piatti.

148
00:11:42,590 --> 00:11:46,680
Tra i favoriti, i clienti e i piatti.

149
00:11:46,680 --> 00:11:51,080
Ora, esaminiamo l'uso di un mixin.

150
00:11:51,080 --> 00:11:57,340
Ora, questo mixin che userò con il mio server Loopback è

151
00:11:57,340 --> 00:12:03,900
un mixin che aggiunge timestamp a tutto ciò che viene salvato o aggiornato.

152
00:12:03,900 --> 00:12:08,780
Quindi ricordate che nel nostro server Express, abbiamo creato e

153
00:12:08,780 --> 00:12:14,550
aggiornato a aggiunto automaticamente utilizzando Mongoose.

154
00:12:14,550 --> 00:12:18,399
Ora per Loopback, ho bisogno di usare questo

155
00:12:18,399 --> 00:12:22,365
mixin specifico chiamato come Lookback ds timestamp mixin.

156
00:12:22,365 --> 00:12:27,130
così tosDo che devo prima installare il mixin nel mio progetto.

157
00:12:27,130 --> 00:12:30,955
Quindi dirò 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
e installare questo modulo nodo.

160
00:12:44,164 --> 00:12:48,113
E una volta installato questo modulo nodo, così come puoi vedere,

161
00:12:48,113 --> 00:12:51,680
questo è il numero di versione 3.4.1 che sto usando.

162
00:12:51,680 --> 00:12:54,620
Poiché questo mixin è installato, ho bisogno di entrare e

163
00:12:54,620 --> 00:12:58,760
abilitare questo utilizzo mixin all'interno dei miei modelli.

164
00:12:58,760 --> 00:13:03,970
Per fare ciò andiamo al codice, nel codice lasciami prima aprire

165
00:13:03,970 --> 00:13:09,736
quel conflitto di modello adiacente, che si trova nella cartella del server.

166
00:13:09,736 --> 00:13:14,716
Quindi nel modello confi.json se vai qui vedrai questi

167
00:13:14,716 --> 00:13:16,900
mixin definiti qui.

168
00:13:16,900 --> 00:13:20,090
Quindi abbiamo i mixin dal server loopback comune e loopback.

169
00:13:20,090 --> 00:13:24,750
Ora ho intenzione di aggiungere il nuovo mixin che ho appena aggiunto qui.

170
00:13:24,750 --> 00:13:31,360
Quindi, questo mixin è in.. /node_modules.

171
00:13:31,360 --> 00:13:33,940
Quindi questo è nella cartella dei moduli del nodo proprio lì.

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

173
00:13:51,953 --> 00:13:58,762
Ciò consente al mio server Loopback di fare uso di questo mixin all'interno del mio server.

174
00:13:58,762 --> 00:14:01,971
Ora non solo questo, ho bisogno di specificare per

175
00:14:01,971 --> 00:14:06,810
tutti i modelli in cui voglio che questo mixin sia incluso.

176
00:14:06,810 --> 00:14:11,014
Quindi, andrò ora a quella cartella comune, e

177
00:14:11,014 --> 00:14:16,812
nella cartella comune modificheremo quel file comment.json e

178
00:14:16,812 --> 00:14:21,940
nel file comment.json, aggiungeremo nel mixin.

179
00:14:21,940 --> 00:14:26,539
Quindi, dopo le proprietà, aggiungerò il mixin come

180
00:14:26,539 --> 00:14:30,490
sincronizzazione tra virgolette, dirai mixins.

181
00:14:33,167 --> 00:14:38,563
:, E, lì,

182
00:14:38,563 --> 00:14:43,657
e all'interno dei mixins vedremo

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

184
00:14:51,863 --> 00:14:55,920
Questa stessa cosa che ho bisogno di incollare in alcuni degli altri modelli, quindi

185
00:14:55,920 --> 00:14:57,445
lasciami copiare questo.

186
00:14:57,445 --> 00:15:03,200
Quindi diremo mixins TimeStamp vero in comments.json.

187
00:15:03,200 --> 00:15:07,420
Poi andremo a dishes.json e

188
00:15:07,420 --> 00:15:11,680
poi aggiungeremo questo anche a dishes.json e

189
00:15:11,680 --> 00:15:16,449
poi andranno a favorite.json, e

190
00:15:16,449 --> 00:15:21,390
poi aggiungeremo in favorite.json.

191
00:15:21,390 --> 00:15:26,395
Lo aggiungeremo a readers.json, E

192
00:15:26,395 --> 00:15:30,129
lo aggiungeremo a promotions.json.

193
00:15:32,495 --> 00:15:36,076
E salva tutte le modifiche.

194
00:15:36,076 --> 00:15:41,583
Ora configureremo un altro elenco di controllo degli accessi, quindi

195
00:15:41,583 --> 00:15:50,020
andando al terminale fammi digitare lb acl per configurare alcune liste di controllo di accesso.

196
00:15:50,020 --> 00:15:53,990
Quindi, qui per i piatti,

197
00:15:53,990 --> 00:15:59,750
specificherò per tutti i metodi e le proprietà il diritto

198
00:16:01,070 --> 00:16:09,686
Può essere fatto solo dall'utente con l'amministratore del ruolo.

199
00:16:11,368 --> 00:16:17,240
Quindi questo è il primo controllo di accesso che configuro per

200
00:16:17,240 --> 00:16:21,589
i piatti, poi faccio lo stesso per i leader.

201
00:16:22,940 --> 00:16:28,673
Tutti i metodi e le proprietà, scrittura, altro,

202
00:16:28,673 --> 00:16:33,819
il ruolo di amministratore concedono esplicitamente l'accesso.

203
00:16:33,819 --> 00:16:39,254
Quindi per le promozioni anche,

204
00:16:39,254 --> 00:16:43,853
lo stesso, tutti i metodi e le

205
00:16:43,853 --> 00:16:49,923
proprietà, scrivere, e altro,

206
00:16:52,023 --> 00:16:57,256
Ruolo concedere esplicitamente l'accesso, perché si desidera solo che l'amministratore

207
00:16:57,256 --> 00:17:03,800
sia in grado di apportare modifiche ai piatti, promozioni, o leader.

208
00:17:03,800 --> 00:17:09,230
Ora per i commenti, i commenti possono essere pubblicati da qualsiasi utente registrato.

209
00:17:09,230 --> 00:17:15,476
Quindi, per i commenti, permettetemi di definire l'ACL per i commenti.

210
00:17:15,476 --> 00:17:20,610
Diciamo commento, tutti i metodi e le

211
00:17:20,610 --> 00:17:25,909
proprietà, tutti i tipi, tutti gli utenti,

212
00:17:25,909 --> 00:17:29,560
negano esplicitamente l'accesso.

213
00:17:29,560 --> 00:17:36,430
Perche' non vogliamo che siano in grado di fare tutte le cose.

214
00:17:36,430 --> 00:17:44,200
Ora, apriamo solo alcune delle operazioni da abilitare dagli utenti.

215
00:17:44,200 --> 00:17:47,749
Quindi, per i commenti, tutti i metodi e

216
00:17:47,749 --> 00:17:52,330
le proprietà, diremo operazione di lettura. L'

217
00:17:52,330 --> 00:17:58,910
operazione di lettura per i commenti sarà solo un utente autenticato.

218
00:17:58,910 --> 00:18:03,995
Quindi solo gli utenti che hanno effettuato l'accesso saranno in grado di leggere i commenti.

219
00:18:03,995 --> 00:18:09,951
Ora allo stesso modo, permettetemi di definire per il

220
00:18:13,120 --> 00:18:17,201
, Commenti, un singolo metodo e

221
00:18:17,201 --> 00:18:21,587
creare, chi può creare commenti?

222
00:18:23,341 --> 00:18:29,583
Qualsiasi utente autenticato, qualsiasi utente autenticato può creare commenti.

223
00:18:29,583 --> 00:18:34,204
Quindi concederemo loro esplicitamente l'accesso, ora,

224
00:18:34,204 --> 00:18:39,529
l'ultimo per i commenti, Diremo per

225
00:18:39,529 --> 00:18:43,720
il commento, tutti i metodi e le proprietà.

226
00:18:43,720 --> 00:18:48,850
Scrivi, il che significa che, a chi è permesso scrivere il commento?

227
00:18:48,850 --> 00:18:55,080
Solo l'utente che possiede tale oggetto può apportare modifiche al commento.

228
00:18:55,080 --> 00:19:00,080
Quindi solo l'utente che ha inviato il commento può apportare modifiche al commento,

229
00:19:00,080 --> 00:19:04,271
sia modificare o eliminare il commento, quindi questo è ciò che permetteremo.

230
00:19:04,271 --> 00:19:09,699
Stesso insieme di operazioni, applichiamo ai preferiti.

231
00:19:09,699 --> 00:19:14,703
Quindi per i preferiti, dal momento che non abbiamo aggiunto

232
00:19:14,703 --> 00:19:20,680
nessuno dei controlli di accesso, quindi per i preferiti, tutti i

233
00:19:20,680 --> 00:19:25,545
metodi e le proprietà, tutti i tipi,

234
00:19:25,545 --> 00:19:30,699
tutti gli utenti, negano esplicitamente l'accesso lì.

235
00:19:30,699 --> 00:19:34,734
Per i preferiti, definiremo per

236
00:19:34,734 --> 00:19:39,047
tutti i metodi e le proprietà, leggere,

237
00:19:39,047 --> 00:19:44,480
solo per l'utente che possiede quell'oggetto.

238
00:19:44,480 --> 00:19:46,910
Quindi solo l'utente può leggere

239
00:19:46,910 --> 00:19:51,186
i propri preferiti, nessun altro utente dovrebbe essere in grado di vedere i propri preferiti.

240
00:19:51,186 --> 00:19:56,616
Ora il terzo è la creazione di preferiti,

241
00:19:56,616 --> 00:20:02,192
quindi per la creazione di preferiti, diremo per

242
00:20:02,192 --> 00:20:07,035
preferito, un singolo metodo, crea,

243
00:20:07,035 --> 00:20:13,510
qualsiasi utente autenticato può creare un commento.

244
00:20:13,510 --> 00:20:19,980
E ultimo, per un favorito, tutti i metodi e

245
00:20:19,980 --> 00:20:26,280
le proprietà, l'operazione di scrittura, solo per l'utente che possiede quell'oggetto.

246
00:20:26,280 --> 00:20:30,621
Quindi solo l'utente che ha inserito il favorito per

247
00:20:30,621 --> 00:20:35,061
se stesso può modificare o eliminare quei preferiti, il gioco è fatto.

248
00:20:35,061 --> 00:20:39,288
Quindi ora abbiamo impostato tutti i controlli di accesso e

249
00:20:39,288 --> 00:20:43,530
tutte le varie relazioni per la nostra applicazione.

250
00:20:45,200 --> 00:20:49,083
Iniziamo ora l'API Rest del server e

251
00:20:49,083 --> 00:20:52,102
quindi esplora alcuni di questi dettagli.

252
00:20:52,102 --> 00:20:57,142
Ora, andando alla nostra applicazione nel browser, quindi

253
00:20:57,142 --> 00:21:02,908
andremo a quel LoopBack Explorer nel browser qui.

254
00:21:02,908 --> 00:21:08,437
In LoopBack Explorer, quello che farò prima è accedere come amministratore.

255
00:21:08,437 --> 00:21:15,960
Quindi accederemo come amministratore andando al /clienti/login.

256
00:21:15,960 --> 00:21:23,684
E poi qui scriveremo nome utente,

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

258
00:21:36,667 --> 00:21:41,781
Password, E accederci,

259
00:21:41,781 --> 00:21:46,655
e una volta che abbiamo effettuato l'accesso, ho solo intenzione di copiare questo ID,

260
00:21:46,655 --> 00:21:49,910
perché questo è il token di accesso.

261
00:21:49,910 --> 00:21:55,074
E andrò qui, e poi impostare il token di accesso con

262
00:21:55,074 --> 00:22:00,461
questo nuovo token di accesso che ho appena ottenuto, dopodiché,

263
00:22:02,944 --> 00:22:07,223
Lasciami postare alcuni piatti sul mio server, quindi

264
00:22:07,223 --> 00:22:10,983
ora che ho effettuato l'accesso come amministratore,

265
00:22:10,983 --> 00:22:16,250
dovrei essere in grado di postare piatti sul mio server.

266
00:22:16,250 --> 00:22:21,320
Quindi aprirò il post e ricorderò che ti avevo dato il file db.json,

267
00:22:21,320 --> 00:22:26,930
quindi possiamo semplicemente copiare e incollare i piatti nel campo dati qui.

268
00:22:26,930 --> 00:22:32,107
Questo è il mio primo piatto, e nel momento in cui posto,

269
00:22:32,107 --> 00:22:37,842
tornerà con le informazioni del piatto qui.

270
00:22:37,842 --> 00:22:42,680
E nota che aggiunge automaticamente nei campi CreateDat e UpdateDat qui.

271
00:22:58,252 --> 00:23:04,798
Questo è il mio secondo piatto, quindi finalmente, ho completato l'inserimento di

272
00:23:04,798 --> 00:23:10,770
tutti i piatti, tutti i leader e tutte le promozioni, e abbiamo finito.

273
00:23:10,770 --> 00:23:13,400
Quindi andiamo avanti e

274
00:23:13,400 --> 00:23:19,100
poi registrare un nuovo cliente nel sistema.

275
00:23:19,100 --> 00:23:23,910
Quindi, per farlo, lasciami rimuovere questo

276
00:23:23,910 --> 00:23:28,970
token di accesso e quindi registreremo un nuovo cliente nel sistema.

277
00:23:28,970 --> 00:23:35,640
Quindi, per farlo, andremo a pubblicare i clienti, e poi per i dati,

278
00:23:35,640 --> 00:23:42,560
lasciatemi fare clic su questo valore di esempio qui, e poi pubblicarlo qui.

279
00:23:42,560 --> 00:23:46,226
E per i dati, il nome,

280
00:23:46,226 --> 00:23:50,788
fammi registrare con il mio nome.

281
00:23:50,788 --> 00:23:54,848
Quindi questo sarebbe un

282
00:23:54,848 --> 00:23:59,760
utente non amministratore che sto registrando, e,

283
00:24:04,270 --> 00:24:12,430
E questa e-mail verificato dovrei rimuovere questo da qui, Ma dovrei includere il

284
00:24:16,215 --> 00:24:22,380
campo password qui, in modo che io possa registrare l'utente.

285
00:24:22,380 --> 00:24:26,387
Quindi sto registrando un nuovo utente ordinario qui.

286
00:24:26,387 --> 00:24:32,422
Quindi, quando mi registro, torna per confermare che questo nuovo

287
00:24:32,422 --> 00:24:37,880
utente registrato è stato aggiunto e mi dà anche un ID per quell'utente.

288
00:24:37,880 --> 00:24:43,475
Ora lasciami accedere come questo utente registrato e poi postare un paio di commenti.

289
00:24:45,510 --> 00:24:50,757
Quindi, per accedere come utente registrato, scenderò al login del cliente,

290
00:24:50,757 --> 00:24:56,822
e per il nome utente, scriverò il mio nome e

291
00:24:56,822 --> 00:25:03,440
la password e poi quando effettuerò il login, tornerà e mi darò un ID.

292
00:25:03,440 --> 00:25:09,281
Ora nota che questo particolare utente è un utente ordinario e non un amministratore,

293
00:25:09,281 --> 00:25:15,130
quindi questo utente può solo pubblicare commenti e modificare i propri commenti.

294
00:25:15,130 --> 00:25:19,030
E o post-favoriti e modificare i propri preferiti.

295
00:25:19,030 --> 00:25:23,806
Quindi, quando pubblichi l'utente, vedrai che è l'ID utente restituito qui,

296
00:25:23,806 --> 00:25:25,511
shis è l'ID per l'utente.

297
00:25:25,511 --> 00:25:29,921
Quindi, avremmo bisogno di questo ogni volta che pubblichiamo commenti o

298
00:25:29,921 --> 00:25:32,800
ogni volta che pubblichiamo i nostri preferiti.

299
00:25:34,030 --> 00:25:38,540
Quindi, per pubblicare un commento per questo utente, quindi

300
00:25:38,540 --> 00:25:42,330
per pubblicare un commento, lasciami pubblicare un paio di commenti per conto di questo utente.

301
00:25:42,330 --> 00:25:47,400
Quindi, andremo a Commenti, e poi pubblicheremo alcuni commenti qui.

302
00:25:47,400 --> 00:25:50,334
Quindi, per pubblicare un commento come si nota,

303
00:25:50,334 --> 00:25:54,134
abbiamo bisogno di fornire tre informazioni.

304
00:25:54,134 --> 00:25:59,770
Dobbiamo fornire il CustomerID, il DisheID, la valutazione e il commento.

305
00:25:59,770 --> 00:26:03,180
Quindi, per il CustomerID, abbiamo appena effettuato l'accesso, quindi

306
00:26:03,180 --> 00:26:07,060
se vai dai clienti e quaggiù in basso.

307
00:26:07,060 --> 00:26:11,939
Otterremo il CustomerID qui, quindi lasciami copiare l'ID utente da qui.

308
00:26:11,939 --> 00:26:18,752
E poi vai nella sezione di pubblicazione dei commenti e

309
00:26:18,752 --> 00:26:23,673
quindi incolla il CustomerID lì.

310
00:26:23,673 --> 00:26:25,830
Lasciami andare a cercare un piatto.

311
00:26:27,470 --> 00:26:34,723
Quindi, se si va a, Piatti e poi si fa un get sui piatti,

312
00:26:34,723 --> 00:26:39,538
si otterrà tutti i piatti che sono nel sistema.

313
00:26:39,538 --> 00:26:45,235
Quindi da questo mi permetta di selezionare il,

314
00:26:47,635 --> 00:26:51,970
Primo piatto, quindi mi limiterò a prendere l'ID del piatto.

315
00:26:51,970 --> 00:26:55,087
Poi per pubblicare i commenti, andremo solo a Commenti,

316
00:26:56,610 --> 00:26:59,960
Post dove stiamo componendo il nostro commento.

317
00:26:59,960 --> 00:27:03,230
E poi incollero' il documento del piatto li' dentro.

318
00:27:03,230 --> 00:27:08,440
E per la valutazione, Cambierò questa valutazione a 4 e,

319
00:27:14,109 --> 00:27:20,377
Basta pubblicare, Questo commento,

320
00:27:20,377 --> 00:27:24,900
così ho postato un commento per questo piatto particolare.

321
00:27:24,900 --> 00:27:28,030
Permettetemi di postare un altro commento per un altro piatto.

322
00:27:30,614 --> 00:27:32,710
Quindi fammi prendere questo secondo piatto.

323
00:27:38,222 --> 00:27:44,548
Quindi ecco l'ID del secondo piatto quindi, ancora una volta, tornando a Commenti.

324
00:27:49,110 --> 00:27:51,699
Fammi cambiare il DishID qui.

325
00:27:51,699 --> 00:27:56,874
E poi, Mi permetta di cambiare i commenti in modo

326
00:27:56,874 --> 00:28:01,976
che si vede che questo è un commento diverso per un piatto diverso.

327
00:28:01,976 --> 00:28:07,182
Quando pubblico il commento, vedrai che tornerà con questa risposta qui,

328
00:28:07,182 --> 00:28:11,422
con la valutazione e il piatto specifico e il CustomerID e così via.

329
00:28:11,422 --> 00:28:14,572
Quindi ora ho postato due commenti per due piatti diversi qui.

330
00:28:16,113 --> 00:28:23,040
Lasciatemi fare questi due come i miei piatti preferiti.

331
00:28:23,040 --> 00:28:25,750
Quindi, per farlo, lasciami andare a Preferiti.

332
00:28:35,658 --> 00:28:38,350
Scendendo ai preferiti.

333
00:28:38,350 --> 00:28:40,310
Permettetemi di postare un paio di preferiti.

334
00:28:40,310 --> 00:28:46,327
Quindi, per pubblicare di nuovo un favorito, vado nei preferiti post qui.

335
00:28:46,327 --> 00:28:52,140
Quindi clicco su questo e poi incollerò in un

336
00:28:52,140 --> 00:28:58,073
dishId, per il CustomerID, fammi solo andare al cliente qui,

337
00:28:58,073 --> 00:29:01,295
dove ho effettuato l'accesso al cliente.

338
00:29:01,295 --> 00:29:04,402
Quindi otterremo l'ID utente da lì.

339
00:29:04,402 --> 00:29:08,379
E questo è un CustomerID, quindi lasciami andare ai Preferiti.

340
00:29:11,044 --> 00:29:16,398
E poi, Nei Preferiti

341
00:29:16,398 --> 00:29:22,245
fammi testare il CustomerID qui, e poi postare questo nei miei preferiti.

342
00:29:22,245 --> 00:29:26,831
Quindi, quando lo posto nei miei preferiti, risponde con questo in modo da

343
00:29:26,831 --> 00:29:32,997
poter vedere che dishId e customerID e FavoriteId sono stati pubblicati qui.

344
00:29:32,997 --> 00:29:36,067
Lasciatemi postare un altro piatto ai miei preferiti in modo da lasciarmi andare al,

345
00:29:40,771 --> 00:29:43,675
Piatti qui ho un altro piatto.

346
00:29:43,675 --> 00:29:49,734
Quindi fammi copiare il, ID del piatto e andare ai miei preferiti e

347
00:29:49,734 --> 00:29:57,140
poi sostituire l'ID di dishe con quel nuovo piatto, e poi postarlo.

348
00:29:57,140 --> 00:30:01,004
Quindi ora dovrei avere due favoriti nel mio gruppo.

349
00:30:03,416 --> 00:30:08,097
Meraviglioso, quindi ora abbiamo un paio di preferiti,

350
00:30:08,097 --> 00:30:13,454
un sacco di piatti, un paio di commenti, tutti postati in.

351
00:30:13,454 --> 00:30:15,168
Ora, come è utile?

352
00:30:15,168 --> 00:30:22,554
Lasciami, Chiudi tutto questo e poi ti mostrerà come questo può essere utile.

353
00:30:22,554 --> 00:30:27,238
Quindi, ora quando ho i piatti, quindi per esempio,

354
00:30:27,238 --> 00:30:31,096
quando voglio dimenticare un piatto specifico.

355
00:30:34,617 --> 00:30:41,440
Fammi prendere questo primo piatto qui, fammi copiare l'identita' del piatto e

356
00:30:47,206 --> 00:30:50,900
posso recuperare quel piatto specifico.

357
00:30:50,900 --> 00:30:55,089
Quindi qui vedi che sto andando a/dishes/id così

358
00:30:55,089 --> 00:30:59,489
qui, quando voglio recuperare quel piatto specifico.

359
00:30:59,489 --> 00:31:04,263
Posso mettere il dishId lì e poi provarlo e

360
00:31:04,263 --> 00:31:07,595
poi qui ottengo il dishId qui.

361
00:31:07,595 --> 00:31:12,850
Ora, se voglio includere i commenti dal piatto, quindi nel filtro,

362
00:31:15,876 --> 00:31:20,814
dovrei digitare includi tra virgolette e

363
00:31:20,814 --> 00:31:25,286
poi tra parentesi specifichi,

364
00:31:27,990 --> 00:31:29,850
Il nome di,

365
00:31:33,392 --> 00:31:38,793
La relazione che voglio includere in quello,

366
00:31:38,793 --> 00:31:42,540
quindi quando dico includi commenti.

367
00:31:42,540 --> 00:31:47,490
Quindi questo è come popolano i mongoli, agisce allo stesso modo.

368
00:31:47,490 --> 00:31:54,666
Quindi, quando dico di includere commenti e poi recuperare il piatto,

369
00:31:54,666 --> 00:31:59,651
notare che quando il piatto viene recuperato,

370
00:32:01,219 --> 00:32:05,350
qui, si ottiene il piatto, ma anche si ottiene una serie di commenti qui.

371
00:32:06,520 --> 00:32:11,395
Quindi è così che puoi compilare i dettagli dalla relazione

372
00:32:11,395 --> 00:32:15,160
che hai con un altro elemento qui.

373
00:32:15,160 --> 00:32:18,830
Ora, allo stesso modo, andando ai commenti, per esempio.

374
00:32:18,830 --> 00:32:24,365
Nei commenti anche, quando recupero i commenti, posso specificare all'interno del filtro.

375
00:32:24,365 --> 00:32:29,137
Quindi, quando dico solo commenti GET,

376
00:32:29,137 --> 00:32:34,460
riporterà tutti i commenti che sono stati pubblicati.

377
00:32:34,460 --> 00:32:40,780
Ora, se voglio compilare le informazioni dishID e customerID, posso dire filtro.

378
00:32:40,780 --> 00:32:45,675
Nel filtro, posso dire includere.

379
00:32:45,675 --> 00:32:50,682
E poi tra parentesi, posso dire piatti perché

380
00:32:50,682 --> 00:32:57,436
questo è il rapporto che ho definito all'interno dei commenti e

381
00:32:57,436 --> 00:33:01,761
dei piatti, e poi piatti e cliente.

382
00:33:01,761 --> 00:33:06,628
E quando recupero queste informazioni, vedrai che nei commenti restituiti,

383
00:33:06,628 --> 00:33:10,311
per ogni commento, noterai che il commento è dato e

384
00:33:10,311 --> 00:33:14,066
quindi anche le informazioni relative al piatto sono compilate, e

385
00:33:14,066 --> 00:33:18,990
le informazioni relative al cliente sono anche compilate per ciascuno dei commenti.

386
00:33:18,990 --> 00:33:25,040
In questo modo, ora possiamo popolare le due relazioni che abbiamo definito

387
00:33:25,040 --> 00:33:30,030
dai piatti automaticamente qui dentro, come mostrato qui.

388
00:33:30,030 --> 00:33:33,662
Allo stesso modo, per i preferiti,

389
00:33:33,662 --> 00:33:37,943
quando stiamo recuperando i preferiti,

390
00:33:37,943 --> 00:33:42,886
diremo preferiti e un ID specifico qui.

391
00:33:42,886 --> 00:33:46,084
E poi possiamo quindi filtrare, in modo

392
00:33:46,084 --> 00:33:50,910
che il preferito specifico può essere recuperato.

393
00:33:50,910 --> 00:33:55,067
Non è possibile recuperare tutti i preferiti perché potrebbero essere preferiti da altri

394
00:33:55,067 --> 00:33:58,992
utenti anche in quell'elenco, quindi non saremo in grado di fare un GET su tutti i preferiti.

395
00:33:58,992 --> 00:34:03,950
Ma invece, quando si recupera questo, si può quindi chiedere che

396
00:34:03,950 --> 00:34:09,650
le informazioni vengano compilate qui in base alle relazioni.

397
00:34:09,650 --> 00:34:14,403
Quindi possiamo dire, in virgolette, («include»: e parentesi quadre scritte.

398
00:34:14,403 --> 00:34:21,605
Possiamo dire ["piatti», «cliente"]),

399
00:34:25,296 --> 00:34:29,382
E recuperare le informazioni.

400
00:34:29,382 --> 00:34:32,828
Quindi noteresti che qui, nel corpo di risposta,

401
00:34:32,828 --> 00:34:36,583
ottieni il favorito, ma anche il piatto corrispondente e

402
00:34:36,583 --> 00:34:40,700
le informazioni del cliente corrispondenti compilate qui.

403
00:34:40,700 --> 00:34:45,720
Così è così che possiamo recuperare ulteriori informazioni

404
00:34:45,720 --> 00:34:50,410
dal nostro sito server come richiesto.

405
00:34:50,410 --> 00:34:53,194
Con questo, completiamo questo esercizio.

406
00:34:53,194 --> 00:34:59,730
In questo esercizio, ho dimostrato a voi come possiamo definire varie relazioni

407
00:34:59,730 --> 00:35:04,920
e quindi essere in grado di recuperare informazioni, e anche utilizzare questo

408
00:35:04,920 --> 00:35:10,250
filtro include al fine di includere le informazioni aggiuntive di tale relazione nel

409
00:35:10,250 --> 00:35:16,210
documento quando si recupera il documento o un insieme di documenti.

410
00:35:16,210 --> 00:35:18,880
Con questo, completiamo questo esercizio.

411
00:35:18,880 --> 00:35:23,400
Quindi, in questi tre esercizi che abbiamo fatto finora con LoopBack, ho

412
00:35:23,400 --> 00:35:29,397
illustrato vari aspetti di come è possibile configurare e costruire il server LoopBack.

413
00:35:29,397 --> 00:35:32,720
Con questo, completiamo questo esercizio.

414
00:35:32,720 --> 00:35:33,974
Questo è un buon momento per

415
00:35:33,974 --> 00:35:37,542
fare un commento GET con il messaggio relazioni LoopBack.

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