1
00:00:00,025 --> 00:00:04,580
[MÚSICA]

2
00:00:04,580 --> 00:00:09,730
No exercício anterior, temos nossos servidores de loopback até um certo estágio.

3
00:00:09,730 --> 00:00:13,549
Agora somos capazes de conectar nossos servidores de loopback ao banco de dados mongolab,

4
00:00:15,040 --> 00:00:19,290
o banco de dados atuando como a fonte de dados para nossos servidores de loopback.

5
00:00:19,290 --> 00:00:24,042
Também definimos listas controladas de acesso para controlar o acesso ao raio, o

6
00:00:24,042 --> 00:00:28,010
resto está aqui, em partes com o nosso servidor de loopback.

7
00:00:28,010 --> 00:00:31,590
Neste exercício, vamos explorar as relações de loopback.

8
00:00:31,590 --> 00:00:36,510
Agora podemos definir modelos e definir relações entre os modelos.

9
00:00:36,510 --> 00:00:40,280
Então, por exemplo, vamos dar o exemplo de um comentário.

10
00:00:40,280 --> 00:00:44,860
Quando você postar um comentário sobre um prato, o comentário está relacionado ao prato.

11
00:00:44,860 --> 00:00:46,980
Um comentário pertence a um prato.

12
00:00:46,980 --> 00:00:50,610
Da mesma forma, um comentário é postado por um usuário específico.

13
00:00:50,610 --> 00:00:55,730
Assim, o comentário tem pertence à relação com este usuário específico.

14
00:00:55,730 --> 00:00:59,370
Agora, quando você olha para o relacionamento na direção inversa,

15
00:00:59,370 --> 00:01:02,555
um prato pode ter vários comentários associados a ele, e da

16
00:01:02,555 --> 00:01:05,616
mesma forma, um usuário pode ter postado vários comentários.

17
00:01:05,616 --> 00:01:10,512
Portanto, estes são os maiores tipos de relações que você pode definir entre

18
00:01:10,512 --> 00:01:14,640
os vários modelos dentro do nosso servidor de loopback.

19
00:01:14,640 --> 00:01:18,930
Também analisaremos o uso de um loopback misturado, o

20
00:01:18,930 --> 00:01:23,460
que nos permite adicionar propriedades adicionais aos nossos modelos.

21
00:01:23,460 --> 00:01:28,850
No final deste exercício você terá um servidor de loopback praticamente completo,

22
00:01:28,850 --> 00:01:32,770
que podemos então conectar ao nosso cliente angular e

23
00:01:32,770 --> 00:01:37,400
ser capaz de usá-lo como o back-end para o nosso cliente angular.

24
00:01:39,650 --> 00:01:46,350
Para continuar com o exercício, na pasta do nosso servidor de loopback,

25
00:01:46,350 --> 00:01:50,910
vamos criar um novo modelo para um comentário.

26
00:01:50,910 --> 00:01:55,040
Então este modelo irá definir como

27
00:01:56,610 --> 00:02:01,930
comentário, e neste caso esse modelo também é salvo

28
00:02:01,930 --> 00:02:07,030
no MongoDB e será como um modelo persistente,

29
00:02:07,030 --> 00:02:12,040
e vamos expor o comentário através da API REST e

30
00:02:13,580 --> 00:02:18,180
a pasta modelo está na pasta comum e para

31
00:02:18,180 --> 00:02:22,170
este comentário teremos duas propriedades associadas com ele.

32
00:02:22,170 --> 00:02:28,489
E a primeira propriedade é Rating.

33
00:02:30,647 --> 00:02:34,499
Que é do tipo Number.

34
00:02:34,499 --> 00:02:39,300
Isso é obrigatório e o valor padrão, vou deixar isso como 5.

35
00:02:39,300 --> 00:02:45,988
E a segunda propriedade seria Comment, que é do tipo string.

36
00:02:45,988 --> 00:02:52,410
Isso é necessário e o valor padrão está vazio.

37
00:02:52,410 --> 00:02:56,320
Assim, cada comentário terá essas duas propriedades, classificação e comentário,

38
00:02:56,320 --> 00:02:57,800
associados a ele.

39
00:02:57,800 --> 00:03:01,190
Além disso, precisamos agora definir a relação entre o comentário eo

40
00:03:01,190 --> 00:03:06,000
usuário que está enviando o comentário, e também o comentário eo

41
00:03:06,000 --> 00:03:10,260
prato com o qual este comentário está associado.

42
00:03:10,260 --> 00:03:15,010
Da mesma forma, vimos no exercício anterior que eles adicionaram

43
00:03:15,010 --> 00:03:17,360
seus favoritos para um usuário.

44
00:03:17,360 --> 00:03:22,610
Então, para definir os favoritos, deixe-me definir novamente um modelo,

45
00:03:22,610 --> 00:03:29,390
e esse nome do modelo é Favorito e isso também é salvo no MongoDB,

46
00:03:29,390 --> 00:03:33,870
e este também é um PersistedModel, e

47
00:03:33,870 --> 00:03:39,120
vamos expor o favorito para o resto API e está na pasta comum.

48
00:03:39,120 --> 00:03:43,020
Agora o favorito em si não precisa de nenhuma propriedade específica, porque todo

49
00:03:43,020 --> 00:03:48,770
o favorito faz é associar o usuário específico com este prato específico.

50
00:03:48,770 --> 00:03:52,790
Então o favorito aqui vai ser usado simplesmente como uma ponte entre o usuário

51
00:03:52,790 --> 00:03:53,770
eo prato.

52
00:03:53,770 --> 00:03:58,385
Então, vamos usar o favorito como uma forma de definir as relações entre o prato e

53
00:03:58,385 --> 00:04:00,320
um usuário.

54
00:04:00,320 --> 00:04:02,710
Então ele não tem nenhuma propriedade específica.

55
00:04:02,710 --> 00:04:07,970
Então agora nós adicionamos dois modelos em nosso servidor de loopback.

56
00:04:07,970 --> 00:04:10,950
Agora, vamos começar a definir as relações modelo.

57
00:04:10,950 --> 00:04:13,110
Agora, como expliquei anteriormente,

58
00:04:13,110 --> 00:04:17,260
existem vários tipos de relações modelo que podemos definir.

59
00:04:17,260 --> 00:04:22,230
Vamos começar com a definição da relação entre um prato e um comentário.

60
00:04:22,230 --> 00:04:27,820
Então, para definir um modelo em loopback, vamos dizer, relação lb.

61
00:04:27,820 --> 00:04:29,890
E quando a relação entra,

62
00:04:29,890 --> 00:04:34,370
precisamos especificar o modelo a partir do qual criar a relação.

63
00:04:34,370 --> 00:04:38,700
Então, em primeiro lugar, vamos criar uma relação entre um prato.

64
00:04:38,700 --> 00:04:45,080
Então, a partir dos pratos, e um prato pode ter muitos comentários associados a ele,

65
00:04:45,080 --> 00:04:50,160
então é por isso que o tipo de relação tem muitos e

66
00:04:50,160 --> 00:04:56,480
está associado com um comentário e o nome da propriedade para a relação

67
00:04:56,480 --> 00:05:02,060
eu vou deixá-lo como o padrão com apenas comentário com uma pequena letra c.

68
00:05:04,320 --> 00:05:09,470
Agora podemos criar um chave estrangeira personalizada específica se quisermos.

69
00:05:09,470 --> 00:05:13,600
Se não o fizermos, o loopback atribuirá automaticamente a chave estrangeira, o

70
00:05:13,600 --> 00:05:18,290
que não seria nada além dos comentários e um id associado a ela.

71
00:05:18,290 --> 00:05:21,700
Então ele vai olhar para trás para defini-lo automaticamente.

72
00:05:21,700 --> 00:05:25,860
Também podemos ter através de modelos, que neste caso não é aplicável.

73
00:05:25,860 --> 00:05:31,490
Um modelo através nos permitirá definir relação com um e com outro modelo e,

74
00:05:31,490 --> 00:05:36,900
neste caso, não temos tal relação, então vamos apenas dizer não e

75
00:05:36,900 --> 00:05:40,670
não vamos aninhar a API REST, e também,

76
00:05:40,670 --> 00:05:45,430
vamos desativar a relação de ser incluída.

77
00:05:45,430 --> 00:05:48,480
E assim, nós especificamos

78
00:05:48,480 --> 00:05:53,000
que a desativação do relacionamento de ser incluído é não.

79
00:05:53,000 --> 00:05:55,790
Mais tarde, você verá por que isso é importante.

80
00:05:55,790 --> 00:05:59,910
Teríamos uma maneira de incluir informações de um

81
00:06:00,950 --> 00:06:04,370
modelo em outro modelo, fazendo uma inclusão lá.

82
00:06:04,370 --> 00:06:10,500
Portanto, isso é algo que pedimos para não ser impedido.

83
00:06:10,500 --> 00:06:14,990
Agora, da mesma forma, podemos definir a próxima relação

84
00:06:14,990 --> 00:06:18,820
entre comentário e os pratos.

85
00:06:20,430 --> 00:06:24,720
Então, quando você define uma relação com o comentário e os pratos, então

86
00:06:24,720 --> 00:06:31,380
deixe-me dizer que relação lb, e vamos agora definir a relação entre o comentário.

87
00:06:31,380 --> 00:06:35,620
E uma vez que um comentário só pode pertencer a um prato específico, então

88
00:06:35,620 --> 00:06:40,700
vamos definir que pertence a um relacionamento, e isso pertence

89
00:06:40,700 --> 00:06:46,180
ao prato aqui e o nome da propriedade para a relação seria pratos.

90
00:06:46,180 --> 00:06:50,226
E não usaremos uma chave estrangeira personalizada,

91
00:06:50,226 --> 00:06:56,067
permitiremos que o relacionamento seja usado nas APIs REST.

92
00:06:56,067 --> 00:07:01,172
Na verdade, nós não queremos isso, então eu deveria ter digitado não para isso,

93
00:07:01,172 --> 00:07:06,026
mas eu vou apenas ir e editar a relação criada no meu código lá.

94
00:07:06,026 --> 00:07:09,816
Então eu posso ir para o arquivo comment.jason e

95
00:07:09,816 --> 00:07:13,604
apenas mudar isso de um sim para um não lá dentro,

96
00:07:13,604 --> 00:07:19,080
eu vou fazer isso porque eu não quero que ele seja aninhado em seguida.

97
00:07:19,080 --> 00:07:20,430
Então deixe-me ir em frente e

98
00:07:20,430 --> 00:07:25,400
fazer essa mudança no comentário chamado Jason antes que eu esqueça de fazer isso.

99
00:07:25,400 --> 00:07:28,070
E então abra o comentário chamado Jason.

100
00:07:28,070 --> 00:07:33,210
E você vê que no comentário chamado Jason nós temos esse relacionamento aqui e

101
00:07:33,210 --> 00:07:40,810
então eu vou cortar isso porque eu não quero que esse ninho seja feito.

102
00:07:41,860 --> 00:07:48,422
Foi um erro que cometi ao digitar, então vou apagar isso.

103
00:07:48,422 --> 00:07:53,350
A próxima relação que vou definir é entre o comentário e

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

105
00:07:54,760 --> 00:07:57,540
Deixe-me novamente, digite a relação lb aqui.

106
00:07:59,670 --> 00:08:02,970
Então vamos definir a relação entre o comentário e o cliente.

107
00:08:02,970 --> 00:08:09,076
Um comentário pertence a um cliente como seria de esperar,

108
00:08:09,076 --> 00:08:15,000
e, Aqui deixe-me

109
00:08:15,000 --> 00:08:21,050
entrar explicitamente, Uma chave estrangeira personalizada.

110
00:08:21,050 --> 00:08:24,350
Só estou fazendo isso para ilustrar que posso

111
00:08:25,400 --> 00:08:28,390
definir uma chave estrangeira específica aqui.

112
00:08:28,390 --> 00:08:32,910
Eu não vou ninho, e eu não vou desativar aqui.

113
00:08:32,910 --> 00:08:36,856
Então, esta é a relação que vou definir entre o comentário e

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

115
00:08:38,210 --> 00:08:44,092
Em seguida, Deixe-me definir a relação entre o cliente eo comentário.

116
00:08:44,092 --> 00:08:49,897
Então, aqui, de um cliente, um cliente tem muitos comentários,

117
00:08:49,897 --> 00:08:54,886
e seu nome de propriedade vou inserir como comentários.

118
00:08:54,886 --> 00:09:01,576
E, em seguida, vou definir a chave estrangeira como CustomerID.

119
00:09:01,576 --> 00:09:07,990
E eu não preciso de um modelo através aqui, eu não vou ninho e eu não vou desativar.

120
00:09:07,990 --> 00:09:13,260
Então agora eu defini todas as relações entre os comentários e

121
00:09:13,260 --> 00:09:16,210
o cliente, e os comentários e os pratos.

122
00:09:16,210 --> 00:09:20,238
Agora, a mesma coisa, vamos trabalhar nos favoritos.

123
00:09:20,238 --> 00:09:26,113
Agora, para os favoritos, deixe-me definir

124
00:09:26,113 --> 00:09:33,560
a relação entre os pratos e os favoritos.

125
00:09:33,560 --> 00:09:39,310
Assim, um prato poderia ter sido favoritos para muitos usuários,

126
00:09:39,310 --> 00:09:45,470
por isso tem muitos relacionamentos com um favorito.

127
00:09:45,470 --> 00:09:49,120
E nós vamos usar favoritos lá, e

128
00:09:49,120 --> 00:09:53,603
nós não vamos precisar de um modelo através e não e não.

129
00:09:53,603 --> 00:09:58,269
Então, agora nós definimos que tem muitas relações entre o prato e

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

131
00:10:00,848 --> 00:10:06,153
Deixe-me agora definir uma relação entre um favorito e um prato.

132
00:10:06,153 --> 00:10:11,282
Então, para definir a relação entre o favorito eo

133
00:10:11,282 --> 00:10:15,852
prato deixe-me dizer favorito pertence ao prato, e

134
00:10:15,852 --> 00:10:20,995
vamos usar os pratos e nenhuma chave estrangeira, não aninhado.

135
00:10:25,515 --> 00:10:29,070
E não vamos desativar a relação de ser incluída.

136
00:10:31,485 --> 00:10:36,397
Agora, vamos ter que definir essa relação entre

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

138
00:10:39,560 --> 00:10:47,149
Então, vamos dizer favorito pertence a um cliente e,

139
00:10:50,393 --> 00:10:55,724
Vamos defini-lo chave estrangeira como um CustomerID.

140
00:10:55,724 --> 00:11:03,370
Não permitiremos o aninhamento da API REST e não desativaremos.

141
00:11:03,370 --> 00:11:09,430
Agora, a última relação, é entre o cliente e o favorito.

142
00:11:10,910 --> 00:11:16,339
Então, agora vamos definir a relação entre o cliente tem muitos,

143
00:11:18,264 --> 00:11:21,440
Favoritos, e isso,

144
00:11:23,506 --> 00:11:29,194
eu vou definir o CustomerID como a chave estrangeira, eu não exijo um modelo através,

145
00:11:29,194 --> 00:11:33,433
e eu não vou permitir o aninhamento e eu não vou desativar nada.

146
00:11:33,433 --> 00:11:38,353
Então é isso, definimos todas as relações que precisamos

147
00:11:38,353 --> 00:11:42,590
entre os comentários e os clientes e os pratos.

148
00:11:42,590 --> 00:11:46,680
Entre os favoritos, os clientes e os pratos.

149
00:11:46,680 --> 00:11:51,080
Agora, vamos examinar o uso de um mixin.

150
00:11:51,080 --> 00:11:57,340
Agora, este mixin que eu vou usar com meu servidor Loopback é

151
00:11:57,340 --> 00:12:03,900
um mixin que adiciona carimbos de data/hora a qualquer coisa que é salvo ou atualizado.

152
00:12:03,900 --> 00:12:08,780
Portanto, lembre-se que em nosso servidor Express, tivemos o criado em e

153
00:12:08,780 --> 00:12:14,550
atualizado em adicionado automaticamente usando Mangusto.

154
00:12:14,550 --> 00:12:18,399
Agora, para Loopback, eu preciso usar este

155
00:12:18,399 --> 00:12:22,365
mixin específico chamado como Lookback ds timestamp mixin.

156
00:12:22,365 --> 00:12:27,130
para ToSDo que eu tenho que primeiro instalar o mixin no meu projeto.

157
00:12:27,130 --> 00:12:30,955
Então eu vou dizer 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 instalar este módulo de nó.

160
00:12:44,164 --> 00:12:48,113
E uma vez que este módulo de nó é instalado, então como você pode ver,

161
00:12:48,113 --> 00:12:51,680
esta é a versão número 3.4.1 que eu estou usando.

162
00:12:51,680 --> 00:12:54,620
Como este mixin está instalado, eu preciso entrar e

163
00:12:54,620 --> 00:12:58,760
habilitar esse uso de mixin dentro dos meus modelos.

164
00:12:58,760 --> 00:13:03,970
Para fazer isso, vamos para o código, no código deixe-me primeiro abrir

165
00:13:03,970 --> 00:13:09,736
esse conflito modelo adjacente, que está na pasta do servidor.

166
00:13:09,736 --> 00:13:14,716
Então, no modelo confi.json se você subir aqui você verá esses

167
00:13:14,716 --> 00:13:16,900
mixins definidos aqui.

168
00:13:16,900 --> 00:13:20,090
Então temos os mixins de loopback comum e servidor de loopback.

169
00:13:20,090 --> 00:13:24,750
Agora eu vou adicionar no novo mixin que acabei de adicionar aqui.

170
00:13:24,750 --> 00:13:31,360
Então, este mixin está em.. /node_modules.

171
00:13:31,360 --> 00:13:33,940
Então isso está na pasta de módulos de nó ali mesmo.

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

173
00:13:51,953 --> 00:13:58,762
Isso permite que meu servidor Loopback faça uso deste mixin dentro do meu servidor.

174
00:13:58,762 --> 00:14:01,971
Agora não só isso, eu preciso especificar para

175
00:14:01,971 --> 00:14:06,810
todos os modelos onde eu quero que este mixin seja incluído.

176
00:14:06,810 --> 00:14:11,014
Então, eu vou agora para essa pasta comum, e

177
00:14:11,014 --> 00:14:16,812
na pasta comum vamos editar esse arquivo comment.json e

178
00:14:16,812 --> 00:14:21,940
no arquivo comment.json, vamos adicionar no mixin.

179
00:14:21,940 --> 00:14:26,539
Então, após as propriedades, vou adicionar no mixin como

180
00:14:26,539 --> 00:14:30,490
sincronização entre aspas, você vai dizer mixins.

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

182
00:14:38,563 --> 00:14:43,657
e dentro dos mixins vamos ver

183
00:14:43,657 --> 00:14:50,350
timestamp, true.

184
00:14:51,863 --> 00:14:55,920
Esta mesma coisa que eu preciso para colar em alguns dos outros modelos então

185
00:14:55,920 --> 00:14:57,445
deixe-me apenas copiar isso.

186
00:14:57,445 --> 00:15:03,200
Então, vamos dizer mixins TimeStamp verdadeiro em comments.json.

187
00:15:03,200 --> 00:15:07,420
Então vamos para dishes.json e,

188
00:15:07,420 --> 00:15:11,680
em seguida, vamos adicionar isso também para dishes.json e,

189
00:15:11,680 --> 00:15:16,449
em seguida, eles vão para favorite.json, e em

190
00:15:16,449 --> 00:15:21,390
seguida, adicionar em favorite.json.

191
00:15:21,390 --> 00:15:26,395
Vamos adicioná-lo a readers.json, e

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

193
00:15:32,495 --> 00:15:36,076
E salve todas as alterações.

194
00:15:36,076 --> 00:15:41,583
Agora vamos configurar mais alguns lista de controle de acesso, então

195
00:15:41,583 --> 00:15:50,020
indo para o terminal deixe-me digitar lb acl para configurar algumas listas de controle de acesso.

196
00:15:50,020 --> 00:15:53,990
Então, aqui para os pratos,

197
00:15:53,990 --> 00:15:59,750
especificarei para todos os métodos e propriedades o direito

198
00:16:01,070 --> 00:16:09,686
Só pode ser feito pelo usuário com o administrador de função.

199
00:16:11,368 --> 00:16:17,240
Então esse é o primeiro controle de acesso que eu configurei para

200
00:16:17,240 --> 00:16:21,589
pratos, então eu faço o mesmo para líderes.

201
00:16:22,940 --> 00:16:28,673
Todos os métodos e propriedades, gravação, outros,

202
00:16:28,673 --> 00:16:33,819
a função de administrador explicitamente concedem acesso.

203
00:16:33,819 --> 00:16:39,254
Em seguida, para as promoções também

204
00:16:39,254 --> 00:16:43,853
, o mesmo, todos os métodos e

205
00:16:43,853 --> 00:16:49,923
propriedades, escrever, e outros,

206
00:16:52,023 --> 00:16:57,256
Função explicitamente conceder acesso, porque você só quer que o administrador

207
00:16:57,256 --> 00:17:03,800
seja capaz de fazer quaisquer alterações nos pratos, promoções ou líderes.

208
00:17:03,800 --> 00:17:09,230
Agora, para os comentários, os comentários podem ser postados por qualquer usuário registrado.

209
00:17:09,230 --> 00:17:15,476
Então, para os comentários, deixe-me definir a ACL para os comentários.

210
00:17:15,476 --> 00:17:20,610
Vamos dizer comentário, todos os métodos e

211
00:17:20,610 --> 00:17:25,909
propriedades, todos os tipos, todos os usuários,

212
00:17:25,909 --> 00:17:29,560
negam explicitamente o acesso.

213
00:17:29,560 --> 00:17:36,430
Porque não queremos que eles sejam capazes de fazer todas as coisas.

214
00:17:36,430 --> 00:17:44,200
Agora, vamos abrir apenas algumas das operações a serem habilitadas pelos usuários.

215
00:17:44,200 --> 00:17:47,749
Então, para comentários, todos os métodos e

216
00:17:47,749 --> 00:17:52,330
propriedades, vamos dizer operação de leitura. A

217
00:17:52,330 --> 00:17:58,910
operação de leitura para os comentários será apenas um usuário autenticado.

218
00:17:58,910 --> 00:18:03,995
Assim, somente os usuários que estiverem conectados poderão ler os comentários.

219
00:18:03,995 --> 00:18:09,951
Agora, da mesma forma, deixe-me definir para o

220
00:18:13,120 --> 00:18:17,201
, Comentários, um único método, e

221
00:18:17,201 --> 00:18:21,587
criar, quem pode criar comentários?

222
00:18:23,341 --> 00:18:29,583
Qualquer usuário autenticado, qualquer usuário autenticado pode criar comentários.

223
00:18:29,583 --> 00:18:34,204
Então vamos explicitamente conceder-lhes o acesso, agora,

224
00:18:34,204 --> 00:18:39,529
o último para comentários, Vamos dizer para

225
00:18:39,529 --> 00:18:43,720
o comentário, todos os métodos e propriedades.

226
00:18:43,720 --> 00:18:48,850
Escrever, o que significa que, quem tem permissão para escrever o comentário?

227
00:18:48,850 --> 00:18:55,080
Somente o usuário que possui esse objeto pode fazer alterações no comentário.

228
00:18:55,080 --> 00:19:00,080
Portanto, apenas o usuário que enviou o comentário pode fazer alterações no comentário,

229
00:19:00,080 --> 00:19:04,271
editar ou excluir o comentário, então é isso que vamos permitir.

230
00:19:04,271 --> 00:19:09,699
Mesmo conjunto de operações, vamos aplicá-los aos favoritos.

231
00:19:09,699 --> 00:19:14,703
Então, para os favoritos, já que não adicionamos

232
00:19:14,703 --> 00:19:20,680
nenhum dos controles de acesso, portanto, para os favoritos,

233
00:19:20,680 --> 00:19:25,545
todos os métodos e propriedades, todos os tipos, todos

234
00:19:25,545 --> 00:19:30,699
os usuários, negam explicitamente o acesso lá.

235
00:19:30,699 --> 00:19:34,734
Para favoritos, vamos definir para

236
00:19:34,734 --> 00:19:39,047
todos os métodos e propriedades, ler,

237
00:19:39,047 --> 00:19:44,480
apenas para o usuário que possui esse objeto.

238
00:19:44,480 --> 00:19:46,910
Portanto, apenas o usuário pode ler

239
00:19:46,910 --> 00:19:51,186
seus próprios favoritos, nenhum outro usuário deve ser capaz de ver seus próprios favoritos.

240
00:19:51,186 --> 00:19:56,616
Agora, o terceiro é a criação de favoritos,

241
00:19:56,616 --> 00:20:02,192
então, para a criação de favoritos, diremos para

242
00:20:02,192 --> 00:20:07,035
favorito, um único método, criar,

243
00:20:07,035 --> 00:20:13,510
qualquer usuário autenticado pode criar um comentário.

244
00:20:13,510 --> 00:20:19,980
E por último, para um favorito, todos os métodos e

245
00:20:19,980 --> 00:20:26,280
propriedades, a operação de gravação, apenas para o usuário que possui esse objeto.

246
00:20:26,280 --> 00:20:30,621
Então, apenas o usuário que inseriu o favorito para

247
00:20:30,621 --> 00:20:35,061
si mesmo pode editar ou excluir esses favoritos, é isso.

248
00:20:35,061 --> 00:20:39,288
Por isso, criámos agora todos os controlos de acesso e

249
00:20:39,288 --> 00:20:43,530
todas as várias relações para a nossa aplicação.

250
00:20:45,200 --> 00:20:49,083
Vamos agora iniciar a API Rest do servidor e,

251
00:20:49,083 --> 00:20:52,102
em seguida, explorar alguns desses detalhes.

252
00:20:52,102 --> 00:20:57,142
Agora, indo para o nosso aplicativo no navegador, então

253
00:20:57,142 --> 00:21:02,908
vamos para esse LoopBack Explorer no navegador aqui.

254
00:21:02,908 --> 00:21:08,437
No LoopBack Explorer, o que vou fazer primeiro é fazer login como administrador.

255
00:21:08,437 --> 00:21:15,960
Então, vamos fazer login como o administrador, indo para o /customers/login.

256
00:21:15,960 --> 00:21:23,684
E então aqui vamos digitar nome de usuário,

257
00:21:27,188 --> 00:21:33,581
administrador, senha,

258
00:21:36,667 --> 00:21:41,781
senha, e logar nós mesmos,

259
00:21:41,781 --> 00:21:46,655
e uma vez que tenhamos logado, eu vou apenas copiar este ID,

260
00:21:46,655 --> 00:21:49,910
porque este é o token de acesso.

261
00:21:49,910 --> 00:21:55,074
E eu vou entrar aqui, e então definir o token de acesso com

262
00:21:55,074 --> 00:22:00,461
este novo token de acesso que eu acabei de obter, depois disso,

263
00:22:02,944 --> 00:22:07,223
Deixe-me postar alguns pratos

264
00:22:07,223 --> 00:22:10,983
no meu servidor, então agora que eu estou logado como um administrador,

265
00:22:10,983 --> 00:22:16,250
eu deveria ser capaz de postar pratos no meu servidor.

266
00:22:16,250 --> 00:22:21,320
Então eu vou abrir post, e lembrar que eu tinha dado o arquivo db.json,

267
00:22:21,320 --> 00:22:26,930
então nós podemos apenas copiar e colar os pratos no campo de dados aqui.

268
00:22:26,930 --> 00:22:32,107
Este é o meu primeiro prato, e no momento em que eu postar,

269
00:22:32,107 --> 00:22:37,842
ele vai voltar com a informação prato aqui.

270
00:22:37,842 --> 00:22:42,680
E note que ele adiciona automaticamente nos campos CreateDAT e UpdateDAT aqui.

271
00:22:58,252 --> 00:23:04,798
Este é o meu segundo prato, então, finalmente, eu terminei de inserir todos os pratos,

272
00:23:04,798 --> 00:23:10,770
todos os líderes, e todas as promoções, e estamos todos feitos.

273
00:23:10,770 --> 00:23:13,400
Então vamos agora seguir em frente e

274
00:23:13,400 --> 00:23:19,100
, em seguida, registrar um novo cliente no sistema.

275
00:23:19,100 --> 00:23:23,910
Então, para fazer isso, deixe-me remover este

276
00:23:23,910 --> 00:23:28,970
token de acesso, e então vamos registrar um novo cliente no sistema.

277
00:23:28,970 --> 00:23:35,640
Então, para fazer isso, vamos para postar clientes, e, em seguida, para os dados,

278
00:23:35,640 --> 00:23:42,560
deixe-me apenas clicar neste exemplo de valor aqui, e depois postá-lo aqui.

279
00:23:42,560 --> 00:23:46,226
E para os dados, o primeiro nome,

280
00:23:46,226 --> 00:23:50,788
deixe-me registar-me com o meu primeiro nome.

281
00:23:50,788 --> 00:23:54,848
Então este seria um

282
00:23:54,848 --> 00:23:59,760
usuário não-administrador que eu estou registrando, e,

283
00:24:04,270 --> 00:24:12,430
e este e-mail verificou que eu deveria remover isso daqui, mas eu deveria incluir o

284
00:24:16,215 --> 00:24:22,380
campo, senha aqui, para que eu possa registrar o usuário.

285
00:24:22,380 --> 00:24:26,387
Então, estou registrando um novo usuário comum aqui.

286
00:24:26,387 --> 00:24:32,422
Então, quando eu registro ele volta para confirmar que este novo

287
00:24:32,422 --> 00:24:37,880
usuário registrado é adicionado, e também me dá um ID para esse usuário.

288
00:24:37,880 --> 00:24:43,475
Agora deixe-me fazer login como este usuário registrado e, em seguida, postar um par de comentários.

289
00:24:45,510 --> 00:24:50,757
Então, para fazer login como usuário registrado, vou até o login do cliente,

290
00:24:50,757 --> 00:24:56,822
e para o nome de usuário, eu vou digitar meu nome e

291
00:24:56,822 --> 00:25:03,440
a senha e, em seguida, quando eu entrar, ele vai voltar e me dar um ID.

292
00:25:03,440 --> 00:25:09,281
Agora note que este usuário em particular é um usuário comum e não um administrador,

293
00:25:09,281 --> 00:25:15,130
então este usuário só pode postar comentários e editar seus próprios comentários.

294
00:25:15,130 --> 00:25:19,030
E ou pós-favoritos e editar seus próprios favoritos.

295
00:25:19,030 --> 00:25:23,806
Então, quando você postar o usuário, você verá que é o UserID retornado aqui,

296
00:25:23,806 --> 00:25:25,511
shis é o ID do usuário.

297
00:25:25,511 --> 00:25:29,921
Então, precisamos disso sempre que postamos comentários ou

298
00:25:29,921 --> 00:25:32,800
sempre que postamos nossos favoritos.

299
00:25:34,030 --> 00:25:38,540
Então, para postar um comentário para este usuário, então

300
00:25:38,540 --> 00:25:42,330
para postar um comentário, deixe-me postar alguns comentários em nome deste usuário.

301
00:25:42,330 --> 00:25:47,400
Então, vamos para Comentários e, em seguida, vamos postar alguns comentários aqui.

302
00:25:47,400 --> 00:25:50,334
Então, para postar um comentário como você percebe,

303
00:25:50,334 --> 00:25:54,134
precisamos fornecer três peças de informação.

304
00:25:54,134 --> 00:25:59,770
Precisamos fornecer o CustomerID, o DishesID, a classificação e o comentário.

305
00:25:59,770 --> 00:26:03,180
Então, para o CustomerID, acabamos de fazer login, então

306
00:26:03,180 --> 00:26:07,060
se você for até os clientes e aqui na parte inferior.

307
00:26:07,060 --> 00:26:11,939
Vamos obter o CustomerID aqui, então deixe-me copiar o UserID daqui.

308
00:26:11,939 --> 00:26:18,752
E, em seguida, vá para a seção de postagem de comentários e

309
00:26:18,752 --> 00:26:23,673
cole o CustomerID lá.

310
00:26:23,673 --> 00:26:25,830
Deixe-me agora ir e encontrar um prato.

311
00:26:27,470 --> 00:26:34,723
Então, se você for para, Pratos e, em seguida, você faz um get sobre os pratos,

312
00:26:34,723 --> 00:26:39,538
você vai ter todos os pratos que estão no sistema.

313
00:26:39,538 --> 00:26:45,235
Então, a partir deste deixe-me selecionar o,

314
00:26:47,635 --> 00:26:51,970
Primeiro prato, então eu vou apenas pegar o ID do prato.

315
00:26:51,970 --> 00:26:55,087
Em seguida, para postar os comentários, vamos apenas para Comentários,

316
00:26:56,610 --> 00:26:59,960
Postar onde estamos compondo nosso comentário.

317
00:26:59,960 --> 00:27:03,230
E então eu vou colar a identidade do prato lá dentro.

318
00:27:03,230 --> 00:27:08,440
E para a classificação, Eu vou mudar essa classificação para 4 e,

319
00:27:14,109 --> 00:27:20,377
Basta postar, Este comentário,

320
00:27:20,377 --> 00:27:24,900
então eu postei um comentário para este prato particular.

321
00:27:24,900 --> 00:27:28,030
Deixe-me postar mais um comentário para outro prato.

322
00:27:30,614 --> 00:27:32,710
Então deixe-me se apossar deste segundo prato.

323
00:27:38,222 --> 00:27:44,548
Então, aqui está o ID do segundo prato assim, novamente, voltando para Comentários.

324
00:27:49,110 --> 00:27:51,699
Deixe-me mudar o Dishid aqui.

325
00:27:51,699 --> 00:27:56,874
E então, Deixe-me mudar os comentários para

326
00:27:56,874 --> 00:28:01,976
que você veja que este é um comentário diferente para um prato diferente.

327
00:28:01,976 --> 00:28:07,182
Quando eu postar o comentário, você veria que ele vai voltar com esta resposta aqui,

328
00:28:07,182 --> 00:28:11,422
com a classificação e o prato específico e o CustomerID e assim por diante.

329
00:28:11,422 --> 00:28:14,572
Então eu já postei dois comentários para dois pratos diferentes aqui.

330
00:28:16,113 --> 00:28:23,040
Deixe-me, Faça estes dois como meus pratos favoritos.

331
00:28:23,040 --> 00:28:25,750
Então, para fazer isso, deixe-me ir aos Favoritos.

332
00:28:35,658 --> 00:28:38,350
Descendo para os favoritos.

333
00:28:38,350 --> 00:28:40,310
Deixe-me postar alguns favoritos.

334
00:28:40,310 --> 00:28:46,327
Então, para postar um favorito novamente, Eu vou para os favoritos post aqui.

335
00:28:46,327 --> 00:28:52,140
Em seguida, clique sobre isso e, em seguida, eu vou colar em um DishID,

336
00:28:52,140 --> 00:28:58,073
para o CustomerID, deixe-me apenas ir até o cliente aqui,

337
00:28:58,073 --> 00:29:01,295
onde eu logado no cliente.

338
00:29:01,295 --> 00:29:04,402
Então, vamos obter o UserID de lá.

339
00:29:04,402 --> 00:29:08,379
E este é um CustomerID, então deixe-me ir para os Favoritos.

340
00:29:11,044 --> 00:29:16,398
E, em seguida, Nos Favoritos

341
00:29:16,398 --> 00:29:22,245
deixe-me testar o CustomerID aqui, e depois postar isso em meus favoritos.

342
00:29:22,245 --> 00:29:26,831
Então, quando eu postar isso em meus favoritos ele responde de volta com isso para que

343
00:29:26,831 --> 00:29:32,997
você possa ver que o DisHID e CustomerID e o FavoriteID foram postados aqui.

344
00:29:32,997 --> 00:29:36,067
Deixe-me postar mais um prato para os meus favoritos então deixe-me ir para o,

345
00:29:40,771 --> 00:29:43,675
Pratos aqui eu tenho outro prato.

346
00:29:43,675 --> 00:29:49,734
Então deixe-me copiar o, ID do prato e ir para os meus favoritos e,

347
00:29:49,734 --> 00:29:57,140
em seguida, substituir o ID do dishe com o novo prato, e depois postar isso.

348
00:29:57,140 --> 00:30:01,004
Então agora eu deveria ter dois favoritos no meu grupo.

349
00:30:03,416 --> 00:30:08,097
Maravilhoso, então agora temos um par de favoritos,

350
00:30:08,097 --> 00:30:13,454
um monte de pratos, um par de comentários, todos postados.

351
00:30:13,454 --> 00:30:15,168
Agora, como isso é útil?

352
00:30:15,168 --> 00:30:22,554
Deixe-me, Feche tudo isso e, em seguida, irá mostrar-lhe como isso pode ser útil.

353
00:30:22,554 --> 00:30:27,238
Então, agora quando eu pego pratos, então, por exemplo,

354
00:30:27,238 --> 00:30:31,096
quando eu quero esquecer um prato específico.

355
00:30:34,617 --> 00:30:41,440
Deixe-me obter este primeiro prato aqui, deixe-me copiar o ID do prato e,

356
00:30:47,206 --> 00:30:50,900
Eu posso recuperar esse prato específico.

357
00:30:50,900 --> 00:30:55,089
Então aqui você vê que eu estou indo para /Dishes/ID então

358
00:30:55,089 --> 00:30:59,489
aqui, quando eu quero recuperar esse prato específico.

359
00:30:59,489 --> 00:31:04,263
Eu posso colocar o DisHid lá e, em seguida, experimentá-lo e

360
00:31:04,263 --> 00:31:07,595
, em seguida, aqui eu tenho o DisHid aqui.

361
00:31:07,595 --> 00:31:12,850
Agora, se eu quiser incluir os comentários do prato, em seguida, no filtro,

362
00:31:15,876 --> 00:31:20,814
Eu deveria digitar incluir entre aspas e, em

363
00:31:20,814 --> 00:31:25,286
seguida, dentro de colchetes eu especificar,

364
00:31:27,990 --> 00:31:29,850
O nome de,

365
00:31:33,392 --> 00:31:38,793
A relação que eu quero incluir em que,

366
00:31:38,793 --> 00:31:42,540
então, quando eu digo incluir comentários.

367
00:31:42,540 --> 00:31:47,490
Então isso é como se os mongóis povoassem, ele age de forma semelhante.

368
00:31:47,490 --> 00:31:54,666
Então, quando eu digo incluir comentários e, em seguida, recuperar o prato,

369
00:31:54,666 --> 00:31:59,651
notar que quando o prato é recuperado,

370
00:32:01,219 --> 00:32:05,350
Aqui, você começa o prato, mas também você recebe uma série de comentários aqui.

371
00:32:06,520 --> 00:32:11,395
Então é assim que você pode preencher os detalhes da relação

372
00:32:11,395 --> 00:32:15,160
que você tem com outro elemento aqui.

373
00:32:15,160 --> 00:32:18,830
Agora, da mesma forma, indo para comentários, por exemplo.

374
00:32:18,830 --> 00:32:24,365
Nos comentários também, quando recupero os comentários, posso especificar dentro do filtro.

375
00:32:24,365 --> 00:32:29,137
Então, quando eu apenas digo GET comentários, ele vai trazer de

376
00:32:29,137 --> 00:32:34,460
volta todos os comentários que foram postados.

377
00:32:34,460 --> 00:32:40,780
Agora, se eu quiser preencher as informações DishID e CustomerID, posso dizer filtro.

378
00:32:40,780 --> 00:32:45,675
No filtro, posso dizer incluir.

379
00:32:45,675 --> 00:32:50,682
E então dentro de parênteses, eu posso dizer pratos porque

380
00:32:50,682 --> 00:32:57,436
essa é a relação que eu defini dentro dos comentários e

381
00:32:57,436 --> 00:33:01,761
dos pratos, e depois pratos e clientes.

382
00:33:01,761 --> 00:33:06,628
E quando eu recuperar esta informação, você verá que nos comentários retornados,

383
00:33:06,628 --> 00:33:10,311
para cada comentário, você vai notar que o comentário é dado e,

384
00:33:10,311 --> 00:33:14,066
em seguida, a informação do prato correspondente também é preenchida, e

385
00:33:14,066 --> 00:33:18,990
a informação correspondente do cliente também é preenchida para cada um dos comentários.

386
00:33:18,990 --> 00:33:25,040
Assim, agora podemos preencher as duas relações que definimos

387
00:33:25,040 --> 00:33:30,030
a partir dos pratos automaticamente aqui, como mostrado aqui.

388
00:33:30,030 --> 00:33:33,662
Da mesma forma, para os favoritos,

389
00:33:33,662 --> 00:33:37,943
quando estamos recuperando os favoritos,

390
00:33:37,943 --> 00:33:42,886
diremos favoritos e um ID específico aqui.

391
00:33:42,886 --> 00:33:46,084
E então podemos filtrar, para

392
00:33:46,084 --> 00:33:50,910
que o favorito específico possa ser recuperado.

393
00:33:50,910 --> 00:33:55,067
Você não pode recuperar todos os favoritos porque eles podem ser favoritos de outros

394
00:33:55,067 --> 00:33:58,992
usuários também nessa lista, então não seremos capazes de fazer um GET em todos os favoritos.

395
00:33:58,992 --> 00:34:03,950
Mas ao invés disso, quando recuperarmos isso, você pode pedir que

396
00:34:03,950 --> 00:34:09,650
as informações sejam preenchidas aqui com base nos relacionamentos.

397
00:34:09,650 --> 00:34:14,403
Então podemos dizer, entre aspas, (“incluir”: e colchetes escritos.

398
00:34:14,403 --> 00:34:21,605
Podemos dizer ["pratos”, “cliente"]),

399
00:34:25,296 --> 00:34:29,382
E recuperar as informações.

400
00:34:29,382 --> 00:34:32,828
Então você notaria que aqui, no Corpo de Resposta,

401
00:34:32,828 --> 00:34:36,583
você obtém o favorito, mas também o prato correspondente e

402
00:34:36,583 --> 00:34:40,700
as informações correspondentes do cliente preenchidas aqui.

403
00:34:40,700 --> 00:34:45,720
Então é assim que podemos recuperar informações adicionais

404
00:34:45,720 --> 00:34:50,410
do nosso site de servidor, conforme necessário.

405
00:34:50,410 --> 00:34:53,194
Com isso, completamos este exercício.

406
00:34:53,194 --> 00:34:59,730
Neste exercício, eu tenho demonstrado a você como podemos definir várias relações

407
00:34:59,730 --> 00:35:04,920
e,

408
00:35:04,920 --> 00:35:10,250
em seguida, ser capaz de recuperar informações, e também usar este filtro incluir a fim de incluir as informações adicionais desse relacionamento

409
00:35:10,250 --> 00:35:16,210
no documento quando você recuperar o documento ou um conjunto de documentos.

410
00:35:16,210 --> 00:35:18,880
Com isso, completamos este exercício.

411
00:35:18,880 --> 00:35:23,400
Então, nesses três exercícios que fizemos até agora com LoopBack, eu

412
00:35:23,400 --> 00:35:29,397
ilustrei vários aspectos de como você pode configurar e construir seu servidor LoopBack.

413
00:35:29,397 --> 00:35:32,720
Com isso, completamos este exercício.

414
00:35:32,720 --> 00:35:33,974
Este é um bom momento para

415
00:35:33,974 --> 00:35:37,542
você fazer um comentário GET com as relações LoopBack mensagem.

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