1
00:00:00,025 --> 00:00:04,580
[МУЗЫКА]

2
00:00:04,580 --> 00:00:09,730
В предыдущем упражнении мы получили наши серверы loopback до определенного этапа.

3
00:00:09,730 --> 00:00:13,549
Теперь мы можем подключить наши серверы loopback к базе данных mongolab, база

4
00:00:15,040 --> 00:00:19,290
данных, выступающая в качестве источника данных для наших серверов loopback.

5
00:00:19,290 --> 00:00:24,042
Мы также определяем списки контроля доступа для контроля доступа к радиусу,

6
00:00:24,042 --> 00:00:28,010
остальные здесь, частично с нашим сервером замыкания на себя.

7
00:00:28,010 --> 00:00:31,590
В этом упражнении мы рассмотрим отношения замыкания на себя.

8
00:00:31,590 --> 00:00:36,510
Теперь мы можем определить модели и определить отношения между моделями.

9
00:00:36,510 --> 00:00:40,280
Так, например, возьмем пример комментария.

10
00:00:40,280 --> 00:00:44,860
Когда вы оставляете комментарий о блюде, комментарий связан с блюдом.

11
00:00:44,860 --> 00:00:46,980
Комментарий принадлежит блюду.

12
00:00:46,980 --> 00:00:50,610
Аналогично, комментарий публикуется конкретным пользователем.

13
00:00:50,610 --> 00:00:55,730
Таким образом, комментарий относится к отношениям с этим конкретным пользователем.

14
00:00:55,730 --> 00:00:59,370
Теперь, когда вы смотрите на отношения в обратном направлении,

15
00:00:59,370 --> 00:01:02,555
блюдо может иметь несколько комментариев, связанных с ним, и

16
00:01:02,555 --> 00:01:05,616
, аналогичным образом, пользователь может опубликовать несколько комментариев.

17
00:01:05,616 --> 00:01:10,512
Таким образом, это самые большие виды отношений, которые вы можете определить между

18
00:01:10,512 --> 00:01:14,640
различными моделями в нашем сервере loopback.

19
00:01:14,640 --> 00:01:18,930
Также мы рассмотрим использование смешанной петли,

20
00:01:18,930 --> 00:01:23,460
которая позволяет нам добавлять дополнительные свойства к нашим моделям.

21
00:01:23,460 --> 00:01:28,850
В конце этого упражнения у вас будет довольно полный сервер loopback,

22
00:01:28,850 --> 00:01:32,770
который мы можем затем подключиться к нашему угловому клиенту и

23
00:01:32,770 --> 00:01:37,400
иметь возможность использовать его в качестве бэк-энда для нашего углового клиента.

24
00:01:39,650 --> 00:01:46,350
Чтобы продолжить упражнение, в папке сервера замыкания на

25
00:01:46,350 --> 00:01:50,910
себя создадим новую модель для комментария.

26
00:01:50,910 --> 00:01:55,040
Таким образом, эта модель будет определяться как

27
00:01:56,610 --> 00:02:01,930
комментарий, и в этом случае эта модель также сохраняется

28
00:02:01,930 --> 00:02:07,030
в MongoDB и будет как постоянная модель,

29
00:02:07,030 --> 00:02:12,040
и мы будем выставлять комментарий через REST API и

30
00:02:13,580 --> 00:02:18,180
папка модели находится в общей папке, и для

31
00:02:18,180 --> 00:02:22,170
этого комментария мы будем иметь два свойства, связанные с это.

32
00:02:22,170 --> 00:02:28,489
И первым свойством является рейтинг.

33
00:02:30,647 --> 00:02:34,499
Который имеет тип Number.

34
00:02:34,499 --> 00:02:39,300
Это обязательно и значение по умолчанию, я оставлю это как 5.

35
00:02:39,300 --> 00:02:45,988
И вторым свойством будет Comment, который имеет строку типа.

36
00:02:45,988 --> 00:02:52,410
Это обязательно, а значение по умолчанию пустое.

37
00:02:52,410 --> 00:02:56,320
Таким образом, каждый комментарий будет иметь эти два свойства, рейтинг и комментарий,

38
00:02:56,320 --> 00:02:57,800
связанные с ним.

39
00:02:57,800 --> 00:03:01,190
Кроме того, нам нужно теперь определить связь между комментарием и

40
00:03:01,190 --> 00:03:06,000
пользователем, который отправляет комментарий, а также комментарий и

41
00:03:06,000 --> 00:03:10,260
блюдо, с которым связан этот комментарий.

42
00:03:10,260 --> 00:03:15,010
Аналогичным образом, мы видели в предыдущем упражнении, что они добавили

43
00:03:15,010 --> 00:03:17,360
свои избранные для пользователя.

44
00:03:17,360 --> 00:03:22,610
Поэтому, чтобы определить избранное, позвольте мне снова определить модель,

45
00:03:22,610 --> 00:03:29,390
и это имя модели является избранным, и это также сохраняется в MongoDB,

46
00:03:29,390 --> 00:03:33,870
и это также PersistedModel, и

47
00:03:33,870 --> 00:03:39,120
мы выставим любимое для остальных API и находится в общей папке.

48
00:03:39,120 --> 00:03:43,020
Теперь сам любимый не нуждается в каком-либо конкретном свойстве, потому что все

49
00:03:43,020 --> 00:03:48,770
любимое ассоциирует конкретного пользователя с этим конкретным блюдом.

50
00:03:48,770 --> 00:03:52,790
Поэтому любимый здесь будет использоваться просто как мост между пользователем

51
00:03:52,790 --> 00:03:53,770
и блюдом.

52
00:03:53,770 --> 00:03:58,385
Таким образом, мы будем использовать любимое как способ определения отношений между

53
00:03:58,385 --> 00:04:00,320
блюдом и пользователем.

54
00:04:00,320 --> 00:04:02,710
Таким образом, он не имеет каких-либо конкретных свойств.

55
00:04:02,710 --> 00:04:07,970
Итак, теперь мы добавили две модели в наш сервер loopback.

56
00:04:07,970 --> 00:04:10,950
Теперь давайте начнем определять модельные отношения.

57
00:04:10,950 --> 00:04:13,110
Теперь, как я объяснял ранее,

58
00:04:13,110 --> 00:04:17,260
существуют различные типы модельных отношений, которые мы можем определить.

59
00:04:17,260 --> 00:04:22,230
Начнем с определения взаимосвязи между блюдом и комментарием.

60
00:04:22,230 --> 00:04:27,820
Итак, чтобы определить модель в loopback, скажем, lb отношение.

61
00:04:27,820 --> 00:04:29,890
И когда отношения приходят,

62
00:04:29,890 --> 00:04:34,370
нам нужно указать модель, из которой следует создать отношение.

63
00:04:34,370 --> 00:04:38,700
Таким образом, в первую очередь, мы создадим связь между блюдом.

64
00:04:38,700 --> 00:04:45,080
Таким образом, из блюд, и блюдо может иметь много комментариев, связанных с ним,

65
00:04:45,080 --> 00:04:50,160
поэтому тип отношения имеет много и

66
00:04:50,160 --> 00:04:56,480
связан с комментарием и именем свойства для отношения

67
00:04:56,480 --> 00:05:02,060
я оставлю его по умолчанию с просто

68
00:05:04,320 --> 00:05:09,470
комментарием с маленькой буквой c. конкретный пользовательский внешний ключ, если мы хотим.

69
00:05:09,470 --> 00:05:13,600
Если мы этого не сделаем, loopback автоматически назначит внешний ключ,

70
00:05:13,600 --> 00:05:18,290
который будет не чем иным, как комментариями и идентификатором, связанным с ним.

71
00:05:18,290 --> 00:05:21,700
Таким образом, он оглянется назад, чтобы определить его автоматически.

72
00:05:21,700 --> 00:05:25,860
Мы также можем иметь сквозные модели, которые в данном случае не применимы.

73
00:05:25,860 --> 00:05:31,490
Сквозная модель позволит нам определить отношение к одной и другой модели

74
00:05:31,490 --> 00:05:36,900
, и в этом случае у нас нет таких отношений, поэтому мы просто скажем «нет», и

75
00:05:36,900 --> 00:05:40,670
мы не будем вставлять REST API, а также

76
00:05:40,670 --> 00:05:45,430
отключим отношение от включения.

77
00:05:45,430 --> 00:05:48,480
Итак, мы указали

78
00:05:48,480 --> 00:05:53,000
, что отключение отношения от включения не является.

79
00:05:53,000 --> 00:05:55,790
Позже вы поймете, почему это важно.

80
00:05:55,790 --> 00:05:59,910
У нас был бы способ включения информации из одной

81
00:06:00,950 --> 00:06:04,370
модели в другую, выполнив включение там.

82
00:06:04,370 --> 00:06:10,500
Так что это то, чего мы просили не предотвращать.

83
00:06:10,500 --> 00:06:14,990
Теперь аналогичным образом, мы можем определить следующую связь

84
00:06:14,990 --> 00:06:18,820
между комментариями и блюдами.

85
00:06:20,430 --> 00:06:24,720
Поэтому, когда вы определяете отношение к комментарию и блюдам,

86
00:06:24,720 --> 00:06:31,380
позвольте мне сказать, что это отношение lb, и теперь мы определим связь между комментарием.

87
00:06:31,380 --> 00:06:35,620
И так как комментарий может принадлежать только к конкретному

88
00:06:35,620 --> 00:06:40,700
блюду, поэтому мы определим, что он принадлежит к отношениям, и это принадлежит

89
00:06:40,700 --> 00:06:46,180
блюду здесь, и имя свойства для отношения будет блюда.

90
00:06:46,180 --> 00:06:50,226
И мы не будем использовать пользовательский внешний ключ,

91
00:06:50,226 --> 00:06:56,067
мы позволим использовать отношения в REST API.

92
00:06:56,067 --> 00:07:01,172
На самом деле мы этого не хотим, поэтому я должен был ввести «нет» для этого,

93
00:07:01,172 --> 00:07:06,026
но я просто пойду и отредактирую созданное отношение в моем коде.

94
00:07:06,026 --> 00:07:09,816
Поэтому я могу войти в файл comment.jason и

95
00:07:09,816 --> 00:07:13,604
просто изменить это с да на нет,

96
00:07:13,604 --> 00:07:19,080
я сделаю это, потому что я не хочу, чтобы он был вложен дальше.

97
00:07:19,080 --> 00:07:20,430
Так что позвольте мне пойти вперед и

98
00:07:20,430 --> 00:07:25,400
внести изменения в комментарий под названием Джейсон, прежде чем я забуду это сделать.

99
00:07:25,400 --> 00:07:28,070
А затем откройте комментарий под названием Джейсон.

100
00:07:28,070 --> 00:07:33,210
И вы видите, что в комментарии под названием Джейсон у нас есть отношения здесь, а

101
00:07:33,210 --> 00:07:40,810
потом я собираюсь вырезать это, потому что я не хочу, чтобы это было сделано.

102
00:07:41,860 --> 00:07:48,422
Это ошибка, которую я сделал при вводе текста, поэтому я удалю это.

103
00:07:48,422 --> 00:07:53,350
Следующая связь, которую я собираюсь определить, между комментарием и

104
00:07:53,350 --> 00:07:54,760
клиентом.

105
00:07:54,760 --> 00:07:57,540
Позвольте мне еще раз, введите lb отношение здесь.

106
00:07:59,670 --> 00:08:02,970
Таким образом, мы определим связь между комментарием и клиентом.

107
00:08:02,970 --> 00:08:09,076
Комментарий принадлежит клиенту, как мы ожидали,

108
00:08:09,076 --> 00:08:15,000
и, Здесь позвольте мне явно

109
00:08:15,000 --> 00:08:21,050
ввести, Пользовательский внешний ключ.

110
00:08:21,050 --> 00:08:24,350
Я просто делаю это, чтобы показать вам, что я могу

111
00:08:25,400 --> 00:08:28,390
определить конкретный внешний ключ здесь.

112
00:08:28,390 --> 00:08:32,910
Я не буду гнездиться, и я не отключу здесь.

113
00:08:32,910 --> 00:08:36,856
Итак, это отношения, которые я определяю между комментарием и

114
00:08:36,856 --> 00:08:38,210
клиентом.

115
00:08:38,210 --> 00:08:44,092
Далее, Позвольте мне определить отношения между клиентом и комментарием.

116
00:08:44,092 --> 00:08:49,897
Поэтому здесь, от клиента, клиент имеет много комментариев,

117
00:08:49,897 --> 00:08:54,886
и их имя собственности я буду вводить в качестве комментариев.

118
00:08:54,886 --> 00:09:01,576
И затем я определяю внешний ключ как customerID.

119
00:09:01,576 --> 00:09:07,990
И мне не нужна сквозная модель здесь, я не буду гнездиться и не отключу.

120
00:09:07,990 --> 00:09:13,260
Так что теперь я определил все отношения между комментариями и

121
00:09:13,260 --> 00:09:16,210
клиентом, и комментариями и посудой.

122
00:09:16,210 --> 00:09:20,238
Теперь, то же самое, давайте поработаем над фаворитами.

123
00:09:20,238 --> 00:09:26,113
Теперь, для фаворитов, Позвольте мне определить

124
00:09:26,113 --> 00:09:33,560
отношения между блюдами и фаворитами.

125
00:09:33,560 --> 00:09:39,310
Таким образом, блюдо могло быть избранным для многих пользователей,

126
00:09:39,310 --> 00:09:45,470
поэтому у него много отношений с фаворитом.

127
00:09:45,470 --> 00:09:49,120
И мы будем использовать фавориты там, и

128
00:09:49,120 --> 00:09:53,603
нам не понадобится сквозная модель и нет и нет.

129
00:09:53,603 --> 00:09:58,269
Итак, теперь мы определили, что у него много отношений между блюдом и

130
00:09:58,269 --> 00:09:59,150
фаворитом.

131
00:10:00,848 --> 00:10:06,153
Позвольте мне теперь определить отношения между любимым и блюдом.

132
00:10:06,153 --> 00:10:11,282
Поэтому, чтобы определить отношения между

133
00:10:11,282 --> 00:10:15,852
фаворитом и блюдом, позвольте мне сказать, что любимое принадлежит блюду, и

134
00:10:15,852 --> 00:10:20,995
мы будем использовать блюда и никаких внешних ключей, не вложенных.

135
00:10:25,515 --> 00:10:29,070
И мы не будем отключать отношения от включения.

136
00:10:31,485 --> 00:10:36,397
Теперь мы должны определить отношения между

137
00:10:36,397 --> 00:10:39,560
фаворитом и клиентом.

138
00:10:39,560 --> 00:10:47,149
Таким образом, мы скажем, любимый принадлежит клиенту и,

139
00:10:50,393 --> 00:10:55,724
Мы определим его внешний ключ как customerID.

140
00:10:55,724 --> 00:11:03,370
Мы не допустим вложенность REST API и не будем отключать.

141
00:11:03,370 --> 00:11:09,430
Теперь последние отношения, между клиентом и фаворитом.

142
00:11:10,910 --> 00:11:16,339
Итак, теперь мы определим отношения между клиентом имеет много,

143
00:11:18,264 --> 00:11:21,440
Избранное, и это,

144
00:11:23,506 --> 00:11:29,194
я определяю CustomerID как внешний ключ, мне не нужна сквозная модель,

145
00:11:29,194 --> 00:11:33,433
и я не позволю вложению, и я ничего не отключу.

146
00:11:33,433 --> 00:11:38,353
Вот и все, мы определили все отношения, которые нам нужны

147
00:11:38,353 --> 00:11:42,590
между комментариями и клиентами и посудой.

148
00:11:42,590 --> 00:11:46,680
Между фаворитами, клиентами и блюдами.

149
00:11:46,680 --> 00:11:51,080
Теперь давайте рассмотрим использование mixin.

150
00:11:51,080 --> 00:11:57,340
Теперь этот mixin, который я собираюсь использовать с моим сервером Loopback,

151
00:11:57,340 --> 00:12:03,900
является mixin, который добавляет временные метки ко всему, что сохраняется или обновляется.

152
00:12:03,900 --> 00:12:08,780
Так что напомним, что в нашем Экспресс сервере, мы создали и

153
00:12:08,780 --> 00:12:14,550
обновили при добавлении автоматически с помощью Mongoose.

154
00:12:14,550 --> 00:12:18,399
Теперь для Loopback мне нужно использовать этот конкретный

155
00:12:18,399 --> 00:12:22,365
mixin, называемый как Lookback ds timestamp mixin.

156
00:12:22,365 --> 00:12:27,130
так что я должен сначала установить mixin в свой проект.

157
00:12:27,130 --> 00:12:30,955
Поэтому я скажу, что 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
и установите этот модуль узла.

160
00:12:44,164 --> 00:12:48,113
И как только этот модуль узла установлен, так что, как вы можете видеть,

161
00:12:48,113 --> 00:12:51,680
это номер версии 3.4.1, которую я использую.

162
00:12:51,680 --> 00:12:54,620
Поскольку этот mixin установлен, мне нужно войти и

163
00:12:54,620 --> 00:12:58,760
включить это использование mixin в моих моделях.

164
00:12:58,760 --> 00:13:03,970
Для этого давайте перейдем к коду, в коде позвольте мне сначала открыть

165
00:13:03,970 --> 00:13:09,736
этот конфликт модели смежный, который находится в папке сервера.

166
00:13:09,736 --> 00:13:14,716
Поэтому в модели confi.json, если вы подниметесь сюда, вы увидите эти

167
00:13:14,716 --> 00:13:16,900
mixins, определенные здесь.

168
00:13:16,900 --> 00:13:20,090
Таким образом, у нас есть mixins от общего и loopback сервера.

169
00:13:20,090 --> 00:13:24,750
Теперь я собираюсь добавить в новый mixin, который я только что добавил здесь.

170
00:13:24,750 --> 00:13:31,360
Итак, этот миксин находится в.. /node_modules.

171
00:13:31,360 --> 00:13:33,940
Таким образом, это находится в папке модулей узла прямо там.

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

173
00:13:51,953 --> 00:13:58,762
Это позволяет моему серверу Loopback использовать этот mixin на моем сервере.

174
00:13:58,762 --> 00:14:01,971
Теперь не только это, мне нужно указать для

175
00:14:01,971 --> 00:14:06,810
всех моделей, где я хочу, чтобы этот mixin был включен.

176
00:14:06,810 --> 00:14:11,014
Итак, я перейду сейчас в эту общую папку, и

177
00:14:11,014 --> 00:14:16,812
в общей папке мы отредактируем этот файл comment.json и

178
00:14:16,812 --> 00:14:21,940
в файле comment.json добавим в mixin.

179
00:14:21,940 --> 00:14:26,539
Поэтому после свойств я добавлю в mixin как

180
00:14:26,539 --> 00:14:30,490
синхронизацию внутри кавычек, вы скажете mixins.

181
00:14:33,167 --> 00:14:38,563
:, И, там,

182
00:14:38,563 --> 00:14:43,657
и внутри mixins мы увидим

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

184
00:14:51,863 --> 00:14:55,920
То же самое мне нужно вставить в некоторые из других моделей, поэтому

185
00:14:55,920 --> 00:14:57,445
позвольте мне просто скопировать это.

186
00:14:57,445 --> 00:15:03,200
Таким образом, мы скажем, что mixins TimeStamp true в comments.json.

187
00:15:03,200 --> 00:15:07,420
Затем мы пойдем на dishes.json, а

188
00:15:07,420 --> 00:15:11,680
затем добавим это также к dishes.json, а

189
00:15:11,680 --> 00:15:16,449
затем они перейдут в favorite.json, а

190
00:15:16,449 --> 00:15:21,390
затем добавим в favorite.json.

191
00:15:21,390 --> 00:15:26,395
Мы добавим его в readers.json, и

192
00:15:26,395 --> 00:15:30,129
мы добавим его в promotions.json.

193
00:15:32,495 --> 00:15:36,076
И сохраните все изменения.

194
00:15:36,076 --> 00:15:41,583
Теперь мы настроим еще несколько списков контроля доступа, поэтому,

195
00:15:41,583 --> 00:15:50,020
перейдя к терминалу, позвольте мне ввести lb acl, чтобы настроить некоторые списки контроля доступа.

196
00:15:50,020 --> 00:15:53,990
Итак, здесь для блюд,

197
00:15:53,990 --> 00:15:59,750
я буду указывать для всех методов и свойств право

198
00:16:01,070 --> 00:16:09,686
Может быть сделано только пользователем с ролью admin.

199
00:16:11,368 --> 00:16:17,240
Так что это первый контроль доступа, который я настраиваю для

200
00:16:17,240 --> 00:16:21,589
посуды, затем я делаю то же самое для лидеров.

201
00:16:22,940 --> 00:16:28,673
Все методы и свойства, запись, другие,

202
00:16:28,673 --> 00:16:33,819
роль администратора явно предоставляют доступ.

203
00:16:33,819 --> 00:16:39,254
Затем для рекламных акций также,

204
00:16:39,254 --> 00:16:43,853
то же самое, все методы и

205
00:16:43,853 --> 00:16:49,923
свойства, писать, и другие,

206
00:16:52,023 --> 00:16:57,256
Роль явно предоставить доступ, потому что вы только хотите,

207
00:16:57,256 --> 00:17:03,800
чтобы администратор мог вносить любые изменения в блюда, акции или лидеры.

208
00:17:03,800 --> 00:17:09,230
Теперь для комментариев комментарии могут быть размещены любым зарегистрированным пользователем.

209
00:17:09,230 --> 00:17:15,476
Поэтому для комментариев позвольте мне определить ACL для комментариев.

210
00:17:15,476 --> 00:17:20,610
Мы скажем комментарий, все методы и

211
00:17:20,610 --> 00:17:25,909
свойства, все типы, все пользователи,

212
00:17:25,909 --> 00:17:29,560
явно запрещают доступ.

213
00:17:29,560 --> 00:17:36,430
Потому что мы не хотим, чтобы они могли делать все это.

214
00:17:36,430 --> 00:17:44,200
Теперь давайте откроем только некоторые операции, которые будут включены пользователями.

215
00:17:44,200 --> 00:17:47,749
Поэтому для комментариев, всех методов и

216
00:17:47,749 --> 00:17:52,330
свойств мы скажем операцию чтения.

217
00:17:52,330 --> 00:17:58,910
Операцией чтения комментариев будет только аутентифицированный пользователь.

218
00:17:58,910 --> 00:18:03,995
Таким образом, только пользователи, которые вошли в систему, смогут читать комментарии.

219
00:18:03,995 --> 00:18:09,951
Теперь аналогичным образом, позвольте мне определить для,

220
00:18:13,120 --> 00:18:17,201
Комментарии, один метод и

221
00:18:17,201 --> 00:18:21,587
создать, кто может создавать комментарии?

222
00:18:23,341 --> 00:18:29,583
Любой аутентифицированный пользователь, любой аутентифицированный пользователь может создавать комментарии.

223
00:18:29,583 --> 00:18:34,204
Таким образом, мы явно предоставим им доступ, теперь,

224
00:18:34,204 --> 00:18:39,529
последний для комментариев, Мы скажем для

225
00:18:39,529 --> 00:18:43,720
комментария, все методы и свойства.

226
00:18:43,720 --> 00:18:48,850
Написать, то есть, кому разрешено писать комментарий?

227
00:18:48,850 --> 00:18:55,080
Только пользователь, владеющий этим объектом, может вносить изменения в комментарий.

228
00:18:55,080 --> 00:19:00,080
Таким образом, только пользователь, который отправил комментарий, может внести изменения в комментарий,

229
00:19:00,080 --> 00:19:04,271
либо отредактировать или удалить комментарий, так что это то, что мы позволим.

230
00:19:04,271 --> 00:19:09,699
Тот же набор операций, давайте применим их к избранному.

231
00:19:09,699 --> 00:19:14,703
Поэтому для избранного, так как мы не добавили

232
00:19:14,703 --> 00:19:20,680
ни одного из элементов управления доступом, поэтому для избранного,

233
00:19:20,680 --> 00:19:25,545
всех методов и свойств, всех типов,

234
00:19:25,545 --> 00:19:30,699
всех пользователей, явно запрещают доступ там.

235
00:19:30,699 --> 00:19:34,734
Для избранного мы определим для

236
00:19:34,734 --> 00:19:39,047
всех методов и свойств, читать,

237
00:19:39,047 --> 00:19:44,480
только для пользователя, владеющего этим объектом.

238
00:19:44,480 --> 00:19:46,910
Таким образом, только пользователь может читать

239
00:19:46,910 --> 00:19:51,186
свои собственные избранные, ни один другой пользователь не должен видеть свои собственные избранные.

240
00:19:51,186 --> 00:19:56,616
Теперь третий - создание фаворитов,

241
00:19:56,616 --> 00:20:02,192
поэтому для создания фаворитов, скажем для

242
00:20:02,192 --> 00:20:07,035
фаворитов, один метод, create,

243
00:20:07,035 --> 00:20:13,510
любой аутентифицированный пользователь может создать комментарий.

244
00:20:13,510 --> 00:20:19,980
И последнее, для избранного, все методы и

245
00:20:19,980 --> 00:20:26,280
свойства, операция записи, только для пользователя, владеющего этим объектом.

246
00:20:26,280 --> 00:20:30,621
Таким образом, только пользователь, который ввел любимое для

247
00:20:30,621 --> 00:20:35,061
себя, может редактировать или удалять эти избранные, вот и все.

248
00:20:35,061 --> 00:20:39,288
Таким образом, мы теперь создали все элементы управления доступом и

249
00:20:39,288 --> 00:20:43,530
все различные отношения для нашего приложения.

250
00:20:45,200 --> 00:20:49,083
Давайте теперь запустим Rest API сервера, а

251
00:20:49,083 --> 00:20:52,102
затем изучим некоторые из этих деталей.

252
00:20:52,102 --> 00:20:57,142
Теперь, перейдя в наше приложение в браузере, так

253
00:20:57,142 --> 00:21:02,908
что мы перейдем к этому LoopBack Explorer в браузере здесь.

254
00:21:02,908 --> 00:21:08,437
В обозревателе LoopBack я собираюсь сначала войти в качестве администратора.

255
00:21:08,437 --> 00:21:15,960
Таким образом, мы войдем в систему в качестве администратора, перейдя в /customers/login.

256
00:21:15,960 --> 00:21:23,684
И затем здесь мы будем вводить имя пользователя,

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

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

259
00:21:41,781 --> 00:21:46,655
и войти в систему, и как только мы войдем в систему, я просто собираюсь скопировать этот ID,

260
00:21:46,655 --> 00:21:49,910
потому что это токен доступа.

261
00:21:49,910 --> 00:21:55,074
И я собираюсь войти сюда, а затем установить токен доступа с

262
00:21:55,074 --> 00:22:00,461
этим новым токеном доступа, который я только что получил, после этого

263
00:22:02,944 --> 00:22:07,223
позвольте мне отправить несколько блюд на мой сервер, так

264
00:22:07,223 --> 00:22:10,983
что теперь, когда я вошел в систему как администратор,

265
00:22:10,983 --> 00:22:16,250
я должен иметь возможность отправлять блюда на мой сервер.

266
00:22:16,250 --> 00:22:21,320
Так что я открою сообщение, и напомню, что я дал вам файл DB.json,

267
00:22:21,320 --> 00:22:26,930
так что мы можем просто скопировать и вставить блюда в поле данных здесь.

268
00:22:26,930 --> 00:22:32,107
Это мое первое блюдо, и в тот момент, когда я отправлю сообщение,

269
00:22:32,107 --> 00:22:37,842
оно вернется с информацией о блюде здесь.

270
00:22:37,842 --> 00:22:42,680
И обратите внимание, что он автоматически добавляет в поля CreateDat и UpdateDat здесь.

271
00:22:58,252 --> 00:23:04,798
Это мое второе блюдо, так что, наконец, я закончил вводить все блюда,

272
00:23:04,798 --> 00:23:10,770
всех лидеров и все акции, и мы все закончили.

273
00:23:10,770 --> 00:23:13,400
Итак, давайте теперь продолжим, а

274
00:23:13,400 --> 00:23:19,100
затем зарегистрируем нового клиента в системе.

275
00:23:19,100 --> 00:23:23,910
Чтобы сделать это, позвольте мне удалить этот

276
00:23:23,910 --> 00:23:28,970
токен доступа, а затем мы зарегистрируем нового клиента в системе.

277
00:23:28,970 --> 00:23:35,640
Поэтому, чтобы сделать это, мы отправимся к публикации клиентов, а затем для данных,

278
00:23:35,640 --> 00:23:42,560
позвольте мне просто нажать на это значение примера здесь, а затем опубликовать его здесь.

279
00:23:42,560 --> 00:23:46,226
И для данных, имя,

280
00:23:46,226 --> 00:23:50,788
позвольте мне зарегистрироваться с моим именем.

281
00:23:50,788 --> 00:23:54,848
Таким образом, это будет

282
00:23:54,848 --> 00:23:59,760
пользователь, не являющийся администратором, который я регистрирую,

283
00:24:04,270 --> 00:24:12,430
и, И это письмо проверено, я должен удалить это отсюда, но я должен включить

284
00:24:16,215 --> 00:24:22,380
поле, пароль здесь, чтобы я мог зарегистрировать пользователя.

285
00:24:22,380 --> 00:24:26,387
Поэтому я регистрирую нового обычного пользователя здесь.

286
00:24:26,387 --> 00:24:32,422
Поэтому, когда я регистрирую, он возвращается, чтобы подтвердить, что этот новый зарегистрированный

287
00:24:32,422 --> 00:24:37,880
пользователь добавлен, а также дает мне идентификатор для этого пользователя.

288
00:24:37,880 --> 00:24:43,475
Теперь позвольте мне войти в систему как этот зарегистрированный пользователь, а затем отправить пару комментариев.

289
00:24:45,510 --> 00:24:50,757
Поэтому, чтобы войти в систему как зарегистрированный пользователь, я перейду к логину клиента,

290
00:24:50,757 --> 00:24:56,822
и для имени пользователя я введу свое имя

291
00:24:56,822 --> 00:25:03,440
и пароль, а затем, когда я войду, он вернется и даст мне идентификатор.

292
00:25:03,440 --> 00:25:09,281
Теперь обратите внимание, что этот пользователь является обычным пользователем, а не администратором,

293
00:25:09,281 --> 00:25:15,130
поэтому этот пользователь может только публиковать комментарии и редактировать свои собственные комментарии.

294
00:25:15,130 --> 00:25:19,030
И или пост-фаворитов и редактировать свои собственные избранные.

295
00:25:19,030 --> 00:25:23,806
Таким образом, когда вы публикуете пользователя, вы увидите, что это UserID, возвращенный здесь,

296
00:25:23,806 --> 00:25:25,511
это идентификатор пользователя.

297
00:25:25,511 --> 00:25:29,921
Таким образом, нам понадобится это всякий раз, когда мы публикуем комментарии или

298
00:25:29,921 --> 00:25:32,800
когда мы публикуем наши избранные.

299
00:25:34,030 --> 00:25:38,540
Итак, чтобы опубликовать комментарий для этого пользователя,

300
00:25:38,540 --> 00:25:42,330
чтобы опубликовать комментарий, позвольте мне опубликовать пару комментариев от имени этого пользователя.

301
00:25:42,330 --> 00:25:47,400
Итак, мы перейдем к Комментарии, а затем мы разместим здесь некоторые комментарии.

302
00:25:47,400 --> 00:25:50,334
Итак, чтобы оставить комментарий, как вы

303
00:25:50,334 --> 00:25:54,134
заметили, нам нужно предоставить три части информации.

304
00:25:54,134 --> 00:25:59,770
Нам нужно предоставить CustomerID, DishESID, рейтинг и комментарий.

305
00:25:59,770 --> 00:26:03,180
Поэтому для CustomerID мы просто вошли в систему, поэтому,

306
00:26:03,180 --> 00:26:07,060
если вы идете к клиентам и внизу.

307
00:26:07,060 --> 00:26:11,939
Мы получим CustomerID здесь, поэтому позвольте мне скопировать UserID отсюда.

308
00:26:11,939 --> 00:26:18,752
А затем перейдите в раздел публикации комментариев, а

309
00:26:18,752 --> 00:26:23,673
затем вставьте туда CustomerID.

310
00:26:23,673 --> 00:26:25,830
Дай мне пойти и найти блюдо.

311
00:26:27,470 --> 00:26:34,723
Так что если вы идете в, Блюда, а затем вы делаете получить на блюда,

312
00:26:34,723 --> 00:26:39,538
вы получите все блюда, которые находятся в системе.

313
00:26:39,538 --> 00:26:45,235
Так что из этого позвольте мне выбрать,

314
00:26:47,635 --> 00:26:51,970
Первое блюдо, так что я просто возьму идентификатор блюда.

315
00:26:51,970 --> 00:26:55,087
Затем, чтобы опубликовать комментарии, мы просто перейдем к Комментарии,

316
00:26:56,610 --> 00:26:59,960
Post, где мы составляем наш комментарий.

317
00:26:59,960 --> 00:27:03,230
А потом я вставлю туда удостоверение тарелки.

318
00:27:03,230 --> 00:27:08,440
И для рейтинга, Я изменю этот рейтинг на 4 и,

319
00:27:14,109 --> 00:27:20,377
Просто сообщение, Этот комментарий,

320
00:27:20,377 --> 00:27:24,900
так что я опубликовал один комментарий для этого конкретного блюда.

321
00:27:24,900 --> 00:27:28,030
Позвольте мне оставить еще один комментарий к другому блюду.

322
00:27:30,614 --> 00:27:32,710
Так что позволь мне достать это второе блюдо.

323
00:27:38,222 --> 00:27:44,548
Итак, вот идентификатор второго блюда, так что, опять же, возвращаясь к Комментарии.

324
00:27:49,110 --> 00:27:51,699
Позвольте мне изменить Дишид здесь.

325
00:27:51,699 --> 00:27:56,874
И затем, Позвольте мне изменить комментарии

326
00:27:56,874 --> 00:28:01,976
, так что вы видите, что это другой комментарий для другого блюда.

327
00:28:01,976 --> 00:28:07,182
Когда я отправлю комментарий, вы увидите, что он вернется с этим ответом здесь,

328
00:28:07,182 --> 00:28:11,422
с рейтингом и конкретным блюдом и CustomerID и так далее.

329
00:28:11,422 --> 00:28:14,572
Поэтому я теперь опубликовал два комментария для двух разных блюд здесь.

330
00:28:16,113 --> 00:28:23,040
Дайте мне, сделайте эти два как мои любимые блюда.

331
00:28:23,040 --> 00:28:25,750
Чтобы сделать это, позволь мне пойти в Избранное.

332
00:28:35,658 --> 00:28:38,350
Спускаюсь к фаворитам.

333
00:28:38,350 --> 00:28:40,310
Позвольте мне опубликовать пару фаворитов.

334
00:28:40,310 --> 00:28:46,327
Поэтому, чтобы опубликовать любимое снова, я иду в избранное пост здесь.

335
00:28:46,327 --> 00:28:52,140
Затем я нажимаю на это, а затем я вставлю в один DishID,

336
00:28:52,140 --> 00:28:58,073
для CustomerID, позвольте мне просто подойти к клиенту здесь,

337
00:28:58,073 --> 00:29:01,295
где я зарегистрировался в клиенте.

338
00:29:01,295 --> 00:29:04,402
Таким образом, мы получим UserID оттуда.

339
00:29:04,402 --> 00:29:08,379
И это один CustomerID, поэтому позвольте мне перейти в избранное.

340
00:29:11,044 --> 00:29:16,398
И затем, В Избранном

341
00:29:16,398 --> 00:29:22,245
позвольте мне протестировать CustomerID здесь, а затем опубликовать это в моем избранном.

342
00:29:22,245 --> 00:29:26,831
Поэтому, когда я размещаю это в своих избранных, он отвечает этим, чтобы

343
00:29:26,831 --> 00:29:32,997
вы могли видеть, что DishID и CustomerID и FavoriteID были опубликованы здесь.

344
00:29:32,997 --> 00:29:36,067
Позвольте мне разместить еще одно блюдо для моих любимых, так что позвольте мне пойти в,

345
00:29:40,771 --> 00:29:43,675
Блюда здесь у меня есть другое блюдо.

346
00:29:43,675 --> 00:29:49,734
Так что позвольте мне скопировать, ID блюда и перейти к моим избранным, а

347
00:29:49,734 --> 00:29:57,140
затем заменить идентификатор dishe's этим новым блюдом, а затем опубликовать это.

348
00:29:57,140 --> 00:30:01,004
Так что теперь у меня должно быть два фаворита в моей группе.

349
00:30:03,416 --> 00:30:08,097
Замечательно, так что теперь у нас есть пара фаворитов

350
00:30:08,097 --> 00:30:13,454
, куча блюд, пара комментариев, все опубликовано.

351
00:30:13,454 --> 00:30:15,168
Теперь как это полезно?

352
00:30:15,168 --> 00:30:22,554
Позвольте мне, Закройте все это, а затем покажет вам, как это может быть полезно.

353
00:30:22,554 --> 00:30:27,238
Итак, теперь, когда я получаю блюда, так например,

354
00:30:27,238 --> 00:30:31,096
когда я хочу забыть конкретное блюдо.

355
00:30:34,617 --> 00:30:41,440
Давай я приведу это первое блюдо сюда, позволь мне скопировать идентификатор блюда, и

356
00:30:47,206 --> 00:30:50,900
я смогу получить это блюдо.

357
00:30:50,900 --> 00:30:55,089
Итак, здесь вы видите, что я собираюсь /Dishes/ID так

358
00:30:55,089 --> 00:30:59,489
здесь, когда я хочу получить это конкретное блюдо.

359
00:30:59,489 --> 00:31:04,263
Я могу поставить ДиШид там, а затем попробовать его, а

360
00:31:04,263 --> 00:31:07,595
затем здесь я получаю ДиШид здесь.

361
00:31:07,595 --> 00:31:12,850
Теперь, если я хочу включить комментарии из блюда, затем в фильтр,

362
00:31:15,876 --> 00:31:20,814
я должен ввести include в кавычки, а

363
00:31:20,814 --> 00:31:25,286
затем в скобках я указываю,

364
00:31:27,990 --> 00:31:29,850
Имя,

365
00:31:33,392 --> 00:31:38,793
Отношение, которое я хочу включить в это,

366
00:31:38,793 --> 00:31:42,540
поэтому, когда я говорю включить комментарии.

367
00:31:42,540 --> 00:31:47,490
Так что это как монголы населяют, он действует аналогичным образом.

368
00:31:47,490 --> 00:31:54,666
Поэтому, когда я говорю включить комментарии, а затем получить блюдо,

369
00:31:54,666 --> 00:31:59,651
обратите внимание, что когда блюдо извлекается

370
00:32:01,219 --> 00:32:05,350
, Здесь, вы получаете блюдо, но также вы получаете массив комментариев здесь.

371
00:32:06,520 --> 00:32:11,395
Так вот как вы можете заполнить детали из отношения,

372
00:32:11,395 --> 00:32:15,160
которое у вас есть с другим элементом здесь.

373
00:32:15,160 --> 00:32:18,830
Теперь, аналогичным образом, перейдем к комментариям, например.

374
00:32:18,830 --> 00:32:24,365
В комментариях также, когда я получаю комментарии, я могу указать в фильтре.

375
00:32:24,365 --> 00:32:29,137
Поэтому, когда я просто говорю комментарии GET, он

376
00:32:29,137 --> 00:32:34,460
вернет все комментарии, которые были опубликованы.

377
00:32:34,460 --> 00:32:40,780
Теперь, если я хочу заполнить информацию DishID и CustomerID, я могу сказать фильтр.

378
00:32:40,780 --> 00:32:45,675
В фильтре, я могу сказать включить.

379
00:32:45,675 --> 00:32:50,682
И затем в скобках я могу сказать блюда

380
00:32:50,682 --> 00:32:57,436
, потому что это отношения, которые я определил в комментариях и

381
00:32:57,436 --> 00:33:01,761
блюдах, а затем блюда и клиент.

382
00:33:01,761 --> 00:33:06,628
И когда я получу эту информацию, вы увидите, что в возвращенных комментариях,

383
00:33:06,628 --> 00:33:10,311
для каждого комментария, вы заметите, что комментарий дается, а

384
00:33:10,311 --> 00:33:14,066
затем соответствующая информация о блюде также заполняется, и

385
00:33:14,066 --> 00:33:18,990
соответствующая информация о клиентах также заполняется для каждого комментария.

386
00:33:18,990 --> 00:33:25,040
Таким образом, теперь мы можем заполнить два отношения, которые мы определили из

387
00:33:25,040 --> 00:33:30,030
блюд автоматически здесь, как показано здесь.

388
00:33:30,030 --> 00:33:33,662
Аналогично, для избранного,

389
00:33:33,662 --> 00:33:37,943
когда мы извлекаем избранное,

390
00:33:37,943 --> 00:33:42,886
мы скажем избранное и конкретный идентификатор здесь.

391
00:33:42,886 --> 00:33:46,084
И тогда мы можем фильтровать, так

392
00:33:46,084 --> 00:33:50,910
что конкретный фаворит может быть извлечен.

393
00:33:50,910 --> 00:33:55,067
Вы не можете получить все избранные, потому что они могут быть избранными от других

394
00:33:55,067 --> 00:33:58,992
пользователей также в этом списке, поэтому мы не сможем сделать GET для всех избранных.

395
00:33:58,992 --> 00:34:03,950
Но вместо этого, когда мы извлечем это, вы можете

396
00:34:03,950 --> 00:34:09,650
попросить заполнить информацию здесь, основываясь на отношениях.

397
00:34:09,650 --> 00:34:14,403
Таким образом, мы можем сказать, в цитате, («include»: и написанные квадратные скобки.

398
00:34:14,403 --> 00:34:21,605
Мы можем сказать ["блюда», «клиент»]),

399
00:34:25,296 --> 00:34:29,382
И получить информацию.

400
00:34:29,382 --> 00:34:32,828
Таким образом, вы заметили, что здесь, в теле ответа,

401
00:34:32,828 --> 00:34:36,583
вы получаете любимое, но также соответствующее блюдо и

402
00:34:36,583 --> 00:34:40,700
соответствующую информацию клиента заполнены здесь.

403
00:34:40,700 --> 00:34:45,720
Вот как мы можем получить дополнительную информацию

404
00:34:45,720 --> 00:34:50,410
с нашего сайта сервера по мере необходимости.

405
00:34:50,410 --> 00:34:53,194
С этим мы завершаем это упражнение.

406
00:34:53,194 --> 00:34:59,730
В этом упражнении я продемонстрировал вам, как мы можем определить различные отношения,

407
00:34:59,730 --> 00:35:04,920
а затем иметь возможность получить информацию, а также использовать этот

408
00:35:04,920 --> 00:35:10,250
фильтр include для того, чтобы включить дополнительную информацию об этой связи в

409
00:35:10,250 --> 00:35:16,210
документ при получении документа или набора документы.

410
00:35:16,210 --> 00:35:18,880
С этим мы завершаем это упражнение.

411
00:35:18,880 --> 00:35:23,400
Таким образом, в этих трех упражнениях, которые мы сделали до сих пор с LoopBack, я

412
00:35:23,400 --> 00:35:29,397
проиллюстрировал различные аспекты того, как вы можете настроить и построить свой сервер LoopBack.

413
00:35:29,397 --> 00:35:32,720
С этим мы завершаем это упражнение.

414
00:35:32,720 --> 00:35:33,974
Это хорошее время для

415
00:35:33,974 --> 00:35:37,542
вас сделать GET комментарий с сообщением LoopBack отношения.

416
00:35:37,542 --> 00:35:43,900
[ МУЗЫКА]