1
00:00:00,000 --> 00:00:04,528
[MÚSICA]

2
00:00:04,528 --> 00:00:09,392
Agora que entendemos REST API e suporte expresso para

3
00:00:09,392 --> 00:00:13,293
REST API, vamos passar para o próximo exercício.

4
00:00:13,293 --> 00:00:17,168
Onde vamos olhar para como vamos desenvolver a API REST

5
00:00:17,168 --> 00:00:19,972
usando o suporte dado pelo express.

6
00:00:19,972 --> 00:00:23,110
E também, o uso de roteador expresso,

7
00:00:23,110 --> 00:00:28,110
permitindo-nos organizar nosso código de uma forma que é mais adequado

8
00:00:28,110 --> 00:00:33,231
quando você precisa suportar um grande número de endpoints API REST.

9
00:00:35,080 --> 00:00:39,965
Para começar, continuando com a pasta node-express

10
00:00:39,965 --> 00:00:44,565
temos trabalhado no servidor web baseado em expressos.

11
00:00:44,565 --> 00:00:50,546
No prompt, vamos instalar o corpo-parser,

12
00:00:50,546 --> 00:00:57,729
então, para fazer isso, digite npm install body-parser —save.

13
00:00:57,729 --> 00:01:02,674
E estamos usando a versão 1.18.3 do

14
00:01:02,674 --> 00:01:06,689
corpo-parser neste curso aqui.

15
00:01:06,689 --> 00:01:12,151
Agora, uma vez que tenhamos instalado corpo-parser, em seguida, ir para o nosso código.

16
00:01:12,151 --> 00:01:16,476
No index.js5,

17
00:01:16,476 --> 00:01:22,723
deixe-me exigir BodyParser, então

18
00:01:22,723 --> 00:01:28,492
vamos dizer const bodyParser

19
00:01:28,492 --> 00:01:33,553
exigem corpo-parser.

20
00:01:33,553 --> 00:01:39,891
E, em seguida, sempre que você precisa usar um middleware,

21
00:01:39,891 --> 00:01:46,558
você vai dizer, app.use (bodyParser.json).

22
00:01:46,558 --> 00:01:51,782
Então, isso nos permite analisar o corpo da mensagem de solicitação,

23
00:01:51,782 --> 00:01:54,989
que é formatado no formato JSON.

24
00:01:57,466 --> 00:02:03,374
Uma vez que tenhamos concluído isso, então vamos começar a

25
00:02:03,374 --> 00:02:08,678
construir o suporte da API REST para o endpoint /dish.

26
00:02:08,678 --> 00:02:12,797
Usando os

27
00:02:12,797 --> 00:02:16,339
métodos app.all, app.get, put, post e delete são suportados pelo express.

28
00:02:16,339 --> 00:02:21,692
Então, para fazer isso, deixe-me começar dizendo

29
00:02:21,692 --> 00:02:26,725
app.all, e os primeiros parâmetros

30
00:02:26,725 --> 00:02:31,937
que app.all toma é o endpoint.

31
00:02:31,937 --> 00:02:36,360
Então, neste caso, estou especificando o ponto final de /dishs.

32
00:02:36,360 --> 00:02:43,560
E então o segundo parâmetro é a função de retorno de chamada,

33
00:02:43,560 --> 00:02:49,564
req, res, em seguida, os três parâmetros aqui.

34
00:02:49,564 --> 00:02:56,518
E dentro desta função de retorno de chamada, vamos lidar com a solicitação recebida.

35
00:02:56,518 --> 00:03:01,740
Então vamos dizer, quando um pedido chegar, para todos os pedidos.

36
00:03:01,740 --> 00:03:06,993
Então, quando dizemos app.all, não importa qual método é chamado,

37
00:03:06,993 --> 00:03:12,864
get, put, post ou delete, para o endpoint /dish REST API,

38
00:03:12,864 --> 00:03:17,190
este código será executado primeiro por padrão aqui.

39
00:03:17,190 --> 00:03:26,376
Então, vamos dizer res StatusCode é 200 e

40
00:03:26,376 --> 00:03:31,889
, em seguida, Res.SetHeader e

41
00:03:31,889 --> 00:03:39,248
digamos texto Content-Type.

42
00:03:39,248 --> 00:03:44,290
Enviaremos texto sem formatação agora, em vez de texto HTML.

43
00:03:44,290 --> 00:03:47,575
Isso deve ser suficiente para endpoints de API REST.

44
00:03:47,575 --> 00:03:52,420
Mais tarde, enviaremos os dados na forma de JSON uma vez que

45
00:03:52,420 --> 00:03:54,640
somos capazes de recuperar os dados do banco de dados.

46
00:03:54,640 --> 00:03:57,340
Então isso virá em um dos exercícios posteriores.

47
00:03:57,340 --> 00:04:04,389
No momento, vamos simplesmente enviar respostas de texto simples para o cliente.

48
00:04:04,389 --> 00:04:10,785
Agora, depois desses dois, o middleware aqui não está concluído ainda.

49
00:04:10,785 --> 00:04:17,590
Então vamos chamar a próxima função aqui, então a próxima como você vê se refere a esta próxima.

50
00:04:17,590 --> 00:04:24,954
Então, quando você chamar a seguir, o que isso significa é que ele vai continuar a procurar

51
00:04:24,954 --> 00:04:29,665
especificações adicionais abaixo aqui,

52
00:04:29,665 --> 00:04:33,790
que irá coincidir com este endpoint pratos.

53
00:04:33,790 --> 00:04:38,282
Então isso seria feito para todos os pedidos, obter, colocar, postar

54
00:04:38,282 --> 00:04:42,712
, e excluir, na louça, e ele vai continuar para o próximo.

55
00:04:42,712 --> 00:04:48,436
Então aqui, suponha que temos um pedido get

56
00:04:48,436 --> 00:04:53,792
em pratos, o que significa que agora,

57
00:04:53,792 --> 00:04:58,961
se obtivermos um pedido get em pratos,

58
00:04:58,961 --> 00:05:04,133
primeiro isso será executado, e

59
00:05:04,133 --> 00:05:09,304
então o req e res serão passados

60
00:05:09,304 --> 00:05:13,760
para esta segunda chamada aqui.

61
00:05:13,760 --> 00:05:17,481
Então, neste caso, eu não vou mais precisar do próximo,

62
00:05:17,481 --> 00:05:21,335
porque eu não vou chamar mais para baixo.

63
00:05:21,335 --> 00:05:26,444
Eu vou completar o manuseio direito dentro deste método aqui em si.

64
00:05:26,444 --> 00:05:31,337
Então, se modificarmos o req ou res dentro deste código,

65
00:05:31,337 --> 00:05:36,607
então quando você chamar o próximo, esse objeto modificado

66
00:05:36,607 --> 00:05:41,130
será passado como o parâmetro para este.

67
00:05:41,130 --> 00:05:45,698
Então, se você emitiu um pedido get em pratos, então isso é o que será

68
00:05:45,698 --> 00:05:50,202
executado logo após isso, então este próximo fará com que ele passe adiante.

69
00:05:50,202 --> 00:05:55,836
E então aqui, você percebe que modificamos o objeto res aqui.

70
00:05:55,836 --> 00:06:02,770
E a modificação será transportada como parâmetro de entrada para esta função aqui.

71
00:06:03,940 --> 00:06:09,380
Então, dentro desta função get, podemos dizer, por exemplo, no momento,

72
00:06:09,380 --> 00:06:15,197
eu simplesmente vou enviar de volta uma mensagem simples, vamos dizer,

73
00:06:15,197 --> 00:06:20,170
vai enviar todos os pratos para você.

74
00:06:20,170 --> 00:06:25,650
Mais tarde, quando recuperamos as informações pratos do banco de dados

75
00:06:25,650 --> 00:06:31,036
depois de aprender sobre MongoDB, então esta função estará retornando

76
00:06:31,036 --> 00:06:36,534
esses dados JSON de volta para o cliente, uma vez que está em um pedido get aqui.

77
00:06:36,534 --> 00:06:40,566
Agora, no curso anterior, tínhamos usado o servidor JSON, e

78
00:06:40,566 --> 00:06:44,457
o servidor JSON já estava fornecendo tudo isso para nós.

79
00:06:44,457 --> 00:06:46,965
Agora você está vendo como você construiria

80
00:06:46,965 --> 00:06:50,268
um servidor real que processará a solicitação de entrada.

81
00:06:50,268 --> 00:06:53,139
E, em seguida, gerar uma resposta apropriada e

82
00:06:53,139 --> 00:06:57,857
enviá-la de volta para você em resposta à solicitação recebida do lado do cliente.

83
00:06:57,857 --> 00:07:02,611
E é aqui que o usuário expressa, como vemos aqui, é útil.

84
00:07:02,611 --> 00:07:06,971
Então temos tratado get,

85
00:07:06,971 --> 00:07:14,387
vamos lidar com post também em pratos aqui.

86
00:07:16,120 --> 00:07:21,064
E novamente, os parâmetros seriam (req, res,

87
00:07:21,064 --> 00:07:26,722
next), e essa função que é invocada estará aqui.

88
00:07:26,722 --> 00:07:31,606
Agora, quando o pedido for recebido, porque aqui, você está chamando rest.end.

89
00:07:31,606 --> 00:07:36,982
Assim, esse fim é o tratamento da solicitação get e não aciona a resposta

90
00:07:36,982 --> 00:07:42,130
a ser enviada de volta, ou resposta a ser enviada de volta para o cliente neste momento.

91
00:07:42,130 --> 00:07:47,050
Agora, se você receber um pedido de postagem sobre pratos, novamente, todo este código será executado.

92
00:07:47,050 --> 00:07:52,859
E então, por causa deste próximo, que irá cair nesta chamada de função aqui.

93
00:07:52,859 --> 00:07:57,000
E, em seguida, o código aqui, será executado, então, quando você receber um

94
00:07:59,610 --> 00:08:04,820
post O pedido de post vindo do servidor irá levar algumas informações

95
00:08:04,820 --> 00:08:08,710
no corpo da mensagem na forma de dados JSON.

96
00:08:08,710 --> 00:08:13,650
Eles vão ver qual é a forma dos dados JSON quando

97
00:08:13,650 --> 00:08:18,910
olhamos mais tarde quando testamos ponto final usando post net.

98
00:08:18,910 --> 00:08:24,700
Vou mostrar-lhe o que o corpo da mensagem de solicitação de postagem conterá.

99
00:08:24,700 --> 00:08:27,710
Mas neste ponto, o que eu vou fazer é,

100
00:08:27,710 --> 00:08:33,420
eu vou extrair a informação do corpo.

101
00:08:33,420 --> 00:08:38,545
E então aqui quando usamos o analisador de corpo, o que acontece é que para

102
00:08:38,545 --> 00:08:44,541
a solicitação de entrada, o corpo da solicitação de entrada será analisado e,

103
00:08:44,541 --> 00:08:48,237
em seguida, adicionado ao objeto req como req.body.

104
00:08:48,237 --> 00:08:52,843
Então o req.body lhe dará acesso ao que estiver dentro desse corpo

105
00:08:52,843 --> 00:08:54,050
da mensagem.

106
00:08:54,050 --> 00:08:58,642
Então, quando eu enviar a solicitação,

107
00:08:58,642 --> 00:09:04,339
vou adicionar informações ao

108
00:09:04,339 --> 00:09:10,034
corpo da solicitação na forma de uma string JSON que

109
00:09:10,034 --> 00:09:15,570
contém um nome e uma descrição.

110
00:09:15,570 --> 00:09:20,081
Então eu vou extrair esses dois pedaços de informação e, em

111
00:09:20,081 --> 00:09:26,080
seguida, imprimi-los e, em seguida, enviá-los de volta para o cliente na mensagem de resposta.

112
00:09:26,080 --> 00:09:32,840
Então eu posso dizer, req.body.e depois nomear.

113
00:09:32,840 --> 00:09:38,298
Assim, a expectativa é que quando o cliente envia a mensagem post,

114
00:09:38,298 --> 00:09:42,183
o corpo da mensagem postada conterá uma string JSON,

115
00:09:42,183 --> 00:09:47,108
que também conterá a propriedade name na string JSON.

116
00:09:47,108 --> 00:09:52,646
Então req.body.name plus e

117
00:09:52,646 --> 00:09:57,952
é aqui que vou incluir

118
00:09:57,952 --> 00:10:06,970
com detalhes: + req.body.description.

119
00:10:06,970 --> 00:10:11,654
Portanto, qualquer que seja a string JSON contiver no req.body, mas a

120
00:10:11,654 --> 00:10:15,963
string JSON será analisada em um objeto JavaScript e

121
00:10:15,963 --> 00:10:19,909
adicionada ao objeto request como um corpo de propriedade.

122
00:10:19,909 --> 00:10:22,971
O objeto JavaScript aponta para o que

123
00:10:22,971 --> 00:10:27,440
veio como a string JSON no corpo da mensagem de solicitação.

124
00:10:27,440 --> 00:10:31,750
Então é por isso que eu sou capaz de analisar a propriedade name, a propriedade description,,

125
00:10:31,750 --> 00:10:38,000
você pode ter a propriedade price, a propriedade image, e tudo isso.

126
00:10:38,000 --> 00:10:42,260
Então, se você fez o curso anterior, você viu a estrutura de um

127
00:10:42,260 --> 00:10:48,850
objeto dish, na forma de uma string JSON ou o objeto JavaScript lá.

128
00:10:48,850 --> 00:10:52,920
Então, o nome e a descrição parecem familiares para você.

129
00:10:52,920 --> 00:10:55,400
Então é exatamente isso que estou usando aqui.

130
00:10:55,400 --> 00:11:00,823
Neste momento, só estou a extrair o nome e a descrição do corpo e

131
00:11:00,823 --> 00:11:04,220
depois a enviar de volta ao cliente deste corpo.

132
00:11:04,220 --> 00:11:09,460
Então eu estou apenas construindo esta mensagem de resposta aqui usando as informações

133
00:11:09,460 --> 00:11:13,150
do corpo da mensagem de solicitação, e, em seguida, enviá-la de volta para o cliente.

134
00:11:13,150 --> 00:11:17,830
Assim eu posso confirmar que o servidor está recebendo o que eu estou enviando

135
00:11:17,830 --> 00:11:19,930
no corpo da mensagem.

136
00:11:19,930 --> 00:11:21,820
Então este é o pedido de correio.

137
00:11:23,390 --> 00:11:30,620
Agora para colocar, deixe-me apenas copiar isso, e depois colá-lo aqui.

138
00:11:30,620 --> 00:11:35,360
E, em seguida, para colocar no ponto final pratos,

139
00:11:35,360 --> 00:11:39,100
porque ele colocar no ponto final pratos não faz sentido.

140
00:11:39,100 --> 00:11:44,440
Um post significa que você está postando um novo prato para os servidores.

141
00:11:44,440 --> 00:11:50,992
A colocar no ponto final de pratos não faz sentido,

142
00:11:50,992 --> 00:11:55,516
então aqui o que eu vou fazer é eu

143
00:11:55,516 --> 00:12:00,664
vou responder de volta com a

144
00:12:00,664 --> 00:12:06,660
operação PUT mensagem não suportada em /dishes.

145
00:12:06,660 --> 00:12:14,790
Além disso, Eu também, Incluir um código de status de 403.

146
00:12:14,790 --> 00:12:19,987
403 significa que sua operação não é suportada.

147
00:12:19,987 --> 00:12:24,319
Então, se você olhar para trás para a tabela de códigos de resposta HTTP,

148
00:12:24,319 --> 00:12:30,600
você verá o código correspondente 403 o que ele representa lá.

149
00:12:30,600 --> 00:12:34,650
Então é isso que eu estou usando para postar.

150
00:12:34,650 --> 00:12:39,879
Para excluir, Eu vou copiar

151
00:12:39,879 --> 00:12:44,777
este e para excluir eu vou,

152
00:12:47,537 --> 00:12:55,960
Basta analisar isso, e então vamos dizer, Excluindo todos os pratos.

153
00:12:55,960 --> 00:13:02,200
Então, quando você envia uma solicitação de exclusão nesse ponto de extremidade /dish.

154
00:13:02,200 --> 00:13:04,900
É interpretado como significando que

155
00:13:04,900 --> 00:13:08,960
o cliente deseja excluir todas as informações de pratos no lado do servidor.

156
00:13:08,960 --> 00:13:11,300
Agora, esta é uma operação perigosa, então

157
00:13:11,300 --> 00:13:15,540
certifique-se de que você não permite que usuários parceiros façam isso.

158
00:13:15,540 --> 00:13:17,750
Então, mais tarde, quando

159
00:13:17,750 --> 00:13:23,220
estudarmos a autenticação, veremos como podemos verificar esta operação apenas para usuários privilegiados.

160
00:13:23,220 --> 00:13:28,620
Mas novamente, como você vê, esta é uma operação perigosa, então tenha em mente sobre isso.

161
00:13:28,620 --> 00:13:33,340
Então agora você vê que no endpoint pratos, temos obter, colocar, postar

162
00:13:33,340 --> 00:13:35,130
e excluir suporte.

163
00:13:35,130 --> 00:13:41,520
Vamos também apoiar isso nos pratos/:endpoint DISHID.

164
00:13:41,520 --> 00:13:46,280
Então eu vou copiar os métodos get, put, post, e excluir a partir daqui,

165
00:13:48,530 --> 00:13:54,175
e, em seguida, chama todos eles também para ser apoiado em

166
00:13:54,175 --> 00:14:00,360
pratos/:DISHID.

167
00:14:00,360 --> 00:14:06,913
Então isso é para o get, e nós copiamos isso e

168
00:14:06,913 --> 00:14:11,480
postamos, colocamos e excluímos.

169
00:14:11,480 --> 00:14:13,330
Como lidamos com cada um desses?

170
00:14:13,330 --> 00:14:19,460
Então, para obter, se eu receber um pedido em pratos/DISHID,

171
00:14:19,460 --> 00:14:22,750
o que eu gostaria de fazer é extrair este parâmetro e, em

172
00:14:22,750 --> 00:14:27,000
seguida, enviá-lo de volta no pedido, na mensagem de resposta.

173
00:14:27,000 --> 00:14:29,725
Então vamos dizer, vamos enviar,

174
00:14:39,018 --> 00:14:41,625
Detalhes do prato.

175
00:14:44,584 --> 00:14:46,910
Agora qual prato?

176
00:14:46,910 --> 00:14:51,570
Essas informações estão no parâmetro.

177
00:14:51,570 --> 00:14:55,335
Portanto, este valor de parâmetro pode recuperar de

178
00:14:55,335 --> 00:15:02,300
req.params.dishid.

179
00:15:02,300 --> 00:15:07,510
Então este DishID, como você vê, o nome que você usa aqui deve corresponder a este valor aqui.

180
00:15:07,510 --> 00:15:09,370
Então, se você simplesmente ver ID aqui,

181
00:15:09,370 --> 00:15:13,220
isso também deve ser correspondente ao SiD dado aqui.

182
00:15:13,220 --> 00:15:17,920
Portanto, o nome em si não significa nada, exceto que este nome de parâmetro e

183
00:15:17,920 --> 00:15:23,400
este deve corresponder um ao outro, para que você possa recuperar as informações corretamente.

184
00:15:25,090 --> 00:15:30,470
Então, vamos dizer, enviar os parâmetros prato DisHid e

185
00:15:30,470 --> 00:15:37,360
, em seguida, vamos dizer para você.

186
00:15:37,360 --> 00:15:43,160
Assim, sabemos que o servidor está recebendo o parâmetro prato..

187
00:15:43,160 --> 00:15:47,350
Então, se eu disser /pratos/23 há várias respostas

188
00:15:47,350 --> 00:15:52,350
irá enviar os detalhes do prato 23 para você e assim por diante.

189
00:15:52,350 --> 00:15:57,632
Então vamos ver como ele funciona quando usamos post para testar este servidor.

190
00:15:57,632 --> 00:15:59,584
Agora para o correio.

191
00:15:59,584 --> 00:16:03,530
Para post, este método não vai ser suportado,

192
00:16:03,530 --> 00:16:07,060
então eu vou apenas copiar esta parte.

193
00:16:07,060 --> 00:16:12,205
não faz sentido fazer um post em um ID de prato específico,

194
00:16:12,205 --> 00:16:16,375
porque você não está tentando adicionar um novo prato.

195
00:16:16,375 --> 00:16:21,360
Mas você deseja modificar, e modificação é feita usando a operação put.

196
00:16:21,360 --> 00:16:28,111
Então, vamos dizer, operação POST não suportada em /dishes.

197
00:16:33,331 --> 00:16:36,360
E então eu vou adicionar no.

198
00:16:39,750 --> 00:16:43,197
Req.Params.Disid.

199
00:16:43,197 --> 00:16:47,535
Então, isso vai enviar de volta dizendo post não suportado em

200
00:16:47,535 --> 00:16:50,752
pratos/23 na mensagem de resposta.

201
00:16:50,752 --> 00:16:55,926
Agora, para PUT, para PUT, vamos dizer,

202
00:16:59,902 --> 00:17:08,799
res.end e dizer Will, atualize o prato.

203
00:17:13,902 --> 00:17:20,978
Req.Params.Disid.

204
00:17:28,915 --> 00:17:31,675
Ou melhor, faremos assim.

205
00:17:33,785 --> 00:17:39,141
Vou escrever primeiro, então

206
00:17:39,141 --> 00:17:45,345
res.write pode ser usado para adicionar uma linha à mensagem de resposta.

207
00:17:45,345 --> 00:17:50,077
Então vamos dizer atualizando o prato.

208
00:17:50,077 --> 00:17:58,655
E diremos req.params.dishid.

209
00:17:58,655 --> 00:18:06,245
E uma vez que esta é uma operação PUT, e se o corpo contém a string JSON,

210
00:18:06,245 --> 00:18:10,277
que contém os detalhes do prato,

211
00:18:10,277 --> 00:18:17,310
eu posso extrair a string JSON porque estamos usando o analisador de corpo.

212
00:18:17,310 --> 00:18:21,649
Então vamos dizer Will

213
00:18:21,649 --> 00:18:26,569
atualizar o prato:.

214
00:18:30,234 --> 00:18:31,924
Qual prato?

215
00:18:31,924 --> 00:18:34,822
req.body.name.

216
00:18:38,122 --> 00:18:38,657
Além disso.

217
00:18:40,531 --> 00:18:45,701
Com detalhes,

218
00:18:45,701 --> 00:18:55,250
req.body.description.

219
00:18:59,320 --> 00:19:08,800
Agora, quando atualizarmos o prato, eu quero adicionar uma nova linha lá.

220
00:19:08,800 --> 00:19:11,411
Então eu vou dizer '/n' lá.

221
00:19:14,500 --> 00:19:19,257
Então, quando você faz um PUT, você está enviando de volta as informações sobre qual ID prato você

222
00:19:19,257 --> 00:19:22,674
está atualizando, e também, os detalhes que você está atualizando.

223
00:19:22,674 --> 00:19:26,997
O nome e a descrição,

224
00:19:26,997 --> 00:19:34,318
que deve estar no corpo da mensagem PUT lá.

225
00:19:34,318 --> 00:19:41,868
Para excluir, Ele vai dizer Deletando prato, e req.params.dishid.

226
00:19:41,868 --> 00:19:47,970
E assim, para excluir, esta é a operação que será realizada.

227
00:19:47,970 --> 00:19:51,607
Então você vê que agora temos as

228
00:19:51,607 --> 00:19:55,838
operações get, put, post e delete nos pratos/DISHID, endpoint, e

229
00:19:55,838 --> 00:20:00,590
também as operações get, put, post no /dish, endpoint.

230
00:20:00,590 --> 00:20:03,765
Então, vamos agora salvar as alterações.

231
00:20:03,765 --> 00:20:05,387
E iniciar o nosso servidor novamente.

232
00:20:08,245 --> 00:20:10,643
Inicie o servidor dizendo npm start.

233
00:20:10,643 --> 00:20:15,611
Vamos agora para o carteiro e enviar alguns pedidos para este servidor e

234
00:20:15,611 --> 00:20:17,270
ver o que ele retorna.

235
00:20:17,270 --> 00:20:22,287
Deixe-me primeiro emitir um get ao anfitrião local 3,000 e ver o que ele retorna.

236
00:20:22,287 --> 00:20:26,832
Então, quando você envia uma solicitação para obter o host local 3.000,

237
00:20:26,832 --> 00:20:30,798
ele ainda está retornando a página HTML de início do índice,

238
00:20:30,798 --> 00:20:35,069
porque o tratamento de arquivo estático ainda está no lugar.

239
00:20:35,069 --> 00:20:41,564
Agora deixe-me enviar um pedido get para localhost: 3000/pratos, e isso,

240
00:20:41,564 --> 00:20:48,383
como você espera, enviará de volta uma resposta dizendo que vamos enviar todos os pratos para você.

241
00:20:48,383 --> 00:20:56,350
Agora, vamos enviar uma solicitação POST para localhost:3000/pratos.

242
00:20:56,350 --> 00:21:01,200
Então é aqui que você pode alterar os vários métodos que você deseja executar.

243
00:21:01,200 --> 00:21:02,880
Mas quando você envia uma postagem,

244
00:21:02,880 --> 00:21:08,570
você quer incluir alguns detalhes no corpo da mensagem porque

245
00:21:08,570 --> 00:21:12,920
há alguém esperando que você envie informações no corpo da mensagem.

246
00:21:12,920 --> 00:21:17,967
Então clique no corpo aqui e clique em raw aqui.

247
00:21:17,967 --> 00:21:23,395
E, em seguida, para o texto, você seleciona isso para JSON, então

248
00:21:23,395 --> 00:21:26,377
use o aplicativo JSON.

249
00:21:26,377 --> 00:21:31,081
Assim, o tipo de conteúdo seria aplicativo/JSON

250
00:21:31,081 --> 00:21:34,220
na solicitação que você envia.

251
00:21:34,220 --> 00:21:38,658
Então, uma vez que este é um objeto JSON, então

252
00:21:38,658 --> 00:21:43,103
dentro de chaves, eu vou dizer nome.

253
00:21:45,320 --> 00:21:50,727
Vou simplesmente digitar o teste

254
00:21:50,727 --> 00:21:53,939
e a descrição.

255
00:22:01,212 --> 00:22:05,760
Algumas informações padrão aqui, para que você veja que esta é uma string JSON que

256
00:22:05,760 --> 00:22:10,900
contém duas propriedades, nome e descrição e os valores correspondentes.

257
00:22:10,900 --> 00:22:13,858
Então vamos enviar um pedido de postagem para o servidor.

258
00:22:13,858 --> 00:22:18,294
Quando você envia um pedido de post para o servidor, como você vê,

259
00:22:18,294 --> 00:22:24,290
na resposta ele diz irá adicionar o prato: detalhes da semana de teste: descrição.

260
00:22:24,290 --> 00:22:30,368
Então, como você pode ver, as duas informações são extraídas do corpo

261
00:22:30,368 --> 00:22:35,772
do JSON solicitado [INAUDIBLE] e, em seguida, incluídas na resposta.

262
00:22:35,772 --> 00:22:39,459
Vamos enviar um pedido de colocação para pratos.

263
00:22:39,459 --> 00:22:43,029
Quando você envia um pedido de colocar para pratos, como você vê,

264
00:22:43,029 --> 00:22:48,654
ele diz operação PUT não suportado em /pratos, e olhar para o status aqui.

265
00:22:48,654 --> 00:22:52,580
Diz Estado: 403 Proibido.

266
00:22:52,580 --> 00:22:57,570
Portanto, esta operação não é permitida neste ponto final.

267
00:22:57,570 --> 00:23:01,430
Vamos fazer uma operação DELETE nos pratos.

268
00:23:01,430 --> 00:23:04,240
Quando você DELETE operação nos pratos,

269
00:23:04,240 --> 00:23:09,270
então você notará que ele diz excluir todos os pratos.

270
00:23:09,270 --> 00:23:11,560
Então essa é a resposta que você recebe.

271
00:23:12,920 --> 00:23:15,410
Então você vê que o get post, put e

272
00:23:15,410 --> 00:23:20,610
delete no endpoint /dish funciona como você espera.

273
00:23:20,610 --> 00:23:24,507
Agora vamos fazer um get em pratos /23.

274
00:23:24,507 --> 00:23:29,017
Então 23 aqui é o parâmetro,

275
00:23:29,017 --> 00:23:34,710
o ID do prato que você deseja obter.

276
00:23:34,710 --> 00:23:38,716
Então, quando você enviar um pedido para que o servidor vai responder,

277
00:23:38,716 --> 00:23:41,878
vai enviar detalhes do prato: 23 para você.

278
00:23:41,878 --> 00:23:47,421
Então você vê que o parâmetro foi extraído da mensagem de solicitação e

279
00:23:47,421 --> 00:23:50,645
, em seguida, incluído na mensagem de resposta.

280
00:23:50,645 --> 00:23:54,850
Vamos fazer um post sobre isso.

281
00:23:54,850 --> 00:23:59,580
E como você sabe, o POST não é permitido neste endpoint, e

282
00:23:59,580 --> 00:24:03,450
é por isso que você obtém um status 403 Proibido sobre isso.

283
00:24:03,450 --> 00:24:05,728
Vamos fazer uma operação PUT sobre isso.

284
00:24:05,728 --> 00:24:10,040
Então, para a operação PUT, você percebe que o corpo ainda contém isso.

285
00:24:10,040 --> 00:24:13,950
Assim, no POST, quando você digita um valor aqui,

286
00:24:13,950 --> 00:24:18,720
que será retido e pode ser incluído em outras solicitações que você está enviando.

287
00:24:18,720 --> 00:24:25,087
Então, quando você envia um pedido PUT no endpoint, pratos/23.

288
00:24:25,087 --> 00:24:28,650
Então você percebe que ele diz atualizar o prato, 23.

289
00:24:28,650 --> 00:24:31,780
Atualizará o prato, o nome do prato,

290
00:24:31,780 --> 00:24:36,200
com detalhes, a descrição do prato aqui.

291
00:24:36,200 --> 00:24:41,130
E, em seguida, vamos fazer uma operação de exclusão nesse ponto final e, em

292
00:24:41,130 --> 00:24:45,140
seguida, ele diz, d excluir prato: 23.

293
00:24:45,140 --> 00:24:52,210
Portanto, todos esses endpoints são suportados como você vê neste exemplo aqui.

294
00:24:52,210 --> 00:24:58,430
Então temos feito obter PUT, POSRT, e excluir operações tanto no endpoint /dish

295
00:24:58,430 --> 00:25:03,830
e também o /dishes/ o endpoint de id prato.

296
00:25:03,830 --> 00:25:08,010
Então, você vê como implementamos o suporte de endpoint de API REST para

297
00:25:08,010 --> 00:25:12,730
um conjunto de endpoints de API REST.

298
00:25:12,730 --> 00:25:17,405
Agora, com isso, completamos a primeira parte deste exercício.

299
00:25:17,405 --> 00:25:22,378
Então, aqui temos visto como podemos usar express para construir e

300
00:25:22,378 --> 00:25:26,755
implementar o endpoint API REST para os pratos.

301
00:25:26,755 --> 00:25:27,885
Agora, este é um bom momento para

302
00:25:27,885 --> 00:25:32,895
você fazer um git commit com a mensagem Express Simple REST.

303
00:25:33,895 --> 00:25:42,361
De acordo com o terminal vou iniciar o servidor.

304
00:25:42,361 --> 00:25:45,845
Verifique se três dos itens foram alterados.

305
00:25:45,845 --> 00:25:52,527
Então, git add, git commit -m,

306
00:25:52,527 --> 00:26:01,750
Express Simples REST, E verifique o conjunto.

307
00:26:01,750 --> 00:26:08,670
Então, como você pode ver, usando o Express você pode facilmente implementar suporte para REST API.

308
00:26:08,670 --> 00:26:15,300
E como você pode ver nesta lista, você constrói os

309
00:26:15,300 --> 00:26:21,590
métodos get, PUT, POST e delete para todos os endpoints da API REST como este.

310
00:26:21,590 --> 00:26:24,601
Agora imagine que você tem mil endpoints de API

311
00:26:24,601 --> 00:26:27,347
REST, e você precisa construir algo assim.

312
00:26:27,347 --> 00:26:33,344
Seu arquivo index.js explodirá com tantos pontos de extremidade da API REST diferentes.

313
00:26:33,344 --> 00:26:37,744
E cada um sendo tratado usando seu próprio app.get,

314
00:26:37,744 --> 00:26:41,536
app.put, app.delete e app.post.

315
00:26:41,536 --> 00:26:46,336
Agora a Wxpress oferece suporte a uma maneira de subdividir esse trabalho em vários

316
00:26:46,336 --> 00:26:48,442
aplicativos Express,

317
00:26:48,442 --> 00:26:54,580
que então podem ser combinados para formar o aplicativo geral Express.

318
00:26:54,580 --> 00:26:58,260
É aqui que faremos uso do Express

319
00:26:58,260 --> 00:27:01,960
Router para construir um mini aplicativo Express.

320
00:27:01,960 --> 00:27:06,070
E, em seguida, dentro de um arquivo do Express Router,

321
00:27:06,070 --> 00:27:10,040
ofereceremos suporte ao endpoint da API REST para um grupo de partes da API REST.

322
00:27:10,040 --> 00:27:13,190
Assim, por exemplo, para pratos e pratos DISHID,

323
00:27:13,190 --> 00:27:15,598
todos eles podem ser suportados em um arquivo.

324
00:27:15,598 --> 00:27:20,694
Da mesma forma, na atribuição, você estará oferecendo suporte a um

325
00:27:20,694 --> 00:27:25,339
endpoint de API REST chamado promoções e promoções/:Promoid.

326
00:27:25,339 --> 00:27:29,570
E então, você oferecerá suporte a outra API REST e

327
00:27:29,570 --> 00:27:34,241
para líderes e /Leader:LeaderId.

328
00:27:34,241 --> 00:27:39,088
Portanto, cada um desses grupos pode ser implementado separadamente como muitos

329
00:27:39,088 --> 00:27:43,120
aplicativos Express usando o Express Router.

330
00:27:43,120 --> 00:27:46,230
Então é isso que eu vou ilustrar para você para

331
00:27:46,230 --> 00:27:52,150
o endpoint pratos na próxima parte deste exercício.

332
00:27:52,150 --> 00:27:57,668
Então, para fazer isso, percebemos que se colocarmos todos os arquivos em uma única pasta,

333
00:27:57,668 --> 00:28:01,498
então novamente sua estrutura de pastas parecerá bagunçada.

334
00:28:01,498 --> 00:28:07,731
Então minha preferência é criar uma pasta aqui chamada rotas.

335
00:28:07,731 --> 00:28:12,591
E essa pasta de rotas conterá todos os roteadores que vou

336
00:28:12,591 --> 00:28:15,450
projetar usando o Express Router.

337
00:28:15,450 --> 00:28:19,465
Então, na pasta rotas, eu vou criar um novo arquivo chamado

338
00:28:19,465 --> 00:28:27,270
dishRouter.js.

339
00:28:27,270 --> 00:28:31,332
E este arquivo dishRouter.js conterá

340
00:28:31,332 --> 00:28:36,972
a implementação do processamento do endpoint da API REST para

341
00:28:36,972 --> 00:28:41,281
endpoints /dish e /dishes:DISHID.

342
00:28:41,281 --> 00:28:44,626
Agora, como fazemos uso do Express Router?

343
00:28:44,626 --> 00:28:46,910
Vamos ver como podemos usá-lo.

344
00:28:46,910 --> 00:28:51,050
Agora o Express Router vem junto com o Express, portanto, não precisamos instalar

345
00:28:51,050 --> 00:28:53,130
mais um módulo Node.

346
00:28:53,130 --> 00:28:56,970
Em vez disso, podemos trabalhar com o Express que já instalamos.

347
00:28:56,970 --> 00:29:02,308
Então, para fazer isso, nesse prompt, digite, const express

348
00:29:02,308 --> 00:29:07,200
= require ('express');.

349
00:29:07,200 --> 00:29:09,950
Portanto, observe que, uma vez que este é um mini-aplicativo,

350
00:29:09,950 --> 00:29:15,000
ainda exigimos expressos mesmo neste arquivo dishRouter.js.

351
00:29:15,000 --> 00:29:18,495
E a partir de seu conhecimento de módulos Node, uma vez que você definir um novo arquivo,

352
00:29:18,495 --> 00:29:20,251
que se torna seu próprio módulo Node.

353
00:29:20,251 --> 00:29:24,708
E este módulo Node pode então ser importado em index.js.

354
00:29:24,708 --> 00:29:29,520
Então você vê a conexão já entre como podemos reestruturar nossa

355
00:29:29,520 --> 00:29:33,415
aplicação em vários arquivos usando módulos Node.

356
00:29:33,415 --> 00:29:39,525
Então vamos definir exigem Express, então vamos dizer const

357
00:29:39,525 --> 00:29:44,830
BodyParser exigem ('corpo-analisador').

358
00:29:44,830 --> 00:29:50,310
Então, já instalamos o BodyParser nas etapas anteriores do exercício,

359
00:29:50,310 --> 00:29:51,634
então podemos usar isso.

360
00:29:51,634 --> 00:29:55,040
Agora, para usar um roteador Express,

361
00:29:55,040 --> 00:30:00,636
deixe-me declarar const DishRouter = Express.r.

362
00:30:00,636 --> 00:30:05,769
E no express, ele suporta esta interface de roteador, então vamos simplesmente

363
00:30:05,769 --> 00:30:11,430
dizer Express.Router e isso irá declarar DishRouter como um roteador Express.

364
00:30:11,430 --> 00:30:13,951
Então, em muitos aplicativos Express,

365
00:30:13,951 --> 00:30:18,820
uma visão aqui eu posso lidar com esse código relacionado DishRouter aqui.

366
00:30:19,830 --> 00:30:26,560
Então, uma vez que eu declarar deste um roteador no Express, então eu posso dizer DisishRouter.

367
00:30:28,050 --> 00:30:33,337
E, em seguida, no DishRouter, ele suporta um método chamado método de rota,

368
00:30:33,337 --> 00:30:36,694
que pode levar em um endpoint como um parâmetro.

369
00:30:36,694 --> 00:30:41,330
Então eu simplesmente declararia este ponto final um /.

370
00:30:41,330 --> 00:30:44,620
Agora, você está se perguntando, isso não deveria ser pratos?

371
00:30:44,620 --> 00:30:49,630
Em breve, você verá que preciso montar este

372
00:30:49,630 --> 00:30:53,140
roteador Express no meu arquivo index.js.

373
00:30:53,140 --> 00:31:01,270
Então, no meu arquivo index.js, vou montar este roteador express no ponto de extremidade /dish.

374
00:31:01,270 --> 00:31:03,300
Montagem de um roteador expresso, novamente,

375
00:31:03,300 --> 00:31:05,900
mais um conceito que eu quero que você entenda.

376
00:31:05,900 --> 00:31:08,408
Mais uma vez, vou ilustrar isso para vocês daqui a pouco.

377
00:31:08,408 --> 00:31:13,368
Agora, o DisishRouter.route significa que usando essa abordagem,

378
00:31:13,368 --> 00:31:17,526
estamos declarando o ponto final em um único local.

379
00:31:17,526 --> 00:31:21,316
Pelo qual você pode encadear todos obter, PUT, POST,

380
00:31:21,316 --> 00:31:25,219
excluir métodos já fazer este roteador prato.

381
00:31:25,219 --> 00:31:30,139
Agora, quando você olha para index.js,, olhe para a maneira como implimentamos isso.

382
00:31:30,139 --> 00:31:36,029
Então temos app.all e, em seguida, /pratos, app.get/pratos e /pratos.

383
00:31:36,029 --> 00:31:40,795
Agora, se você tivesse cometido um erro, e sua app.post instruindo

384
00:31:40,795 --> 00:31:45,580
/pratos em vez disso, se você apenas digitar /prato, então o que acontece?

385
00:31:45,580 --> 00:31:49,050
A operação POST não será suportada em pratos, mas

386
00:31:49,050 --> 00:31:51,730
será suportada no endpoint /dish.

387
00:31:53,170 --> 00:31:59,220
Para evitar esse problema, o roteador express oferece suporte a esse ponto final de rota.

388
00:31:59,220 --> 00:32:00,090
No ponto final da rota,

389
00:32:00,090 --> 00:32:05,860
você simplesmente especifica o ponto final no qual esse roteador funcionará.

390
00:32:05,860 --> 00:32:10,890
E então, o método get put part delete, isso simplesmente encadeado em que.

391
00:32:10,890 --> 00:32:16,300
Então, será um grupo de implementações de métodos todos juntos.

392
00:32:16,300 --> 00:32:20,345
Então essa é a razão pela qual eles usam um roteador Express.

393
00:32:20,345 --> 00:32:24,185
Por isso, ele vem com um par de

394
00:32:24,185 --> 00:32:28,525
suporte muito útil para garantir que sua implementação está correta.

395
00:32:28,525 --> 00:32:32,190
Então agora que vamos fazer isso como o roteador de prato,

396
00:32:32,190 --> 00:32:37,920
o que eu vou fazer é remover essa coisa daqui.

397
00:32:37,920 --> 00:32:42,990
Agora, que pratos IDN ponto, Eu vou deixar isso

398
00:32:42,990 --> 00:32:47,565
para você como um exercício em sua primeira tarefa, mas

399
00:32:47,565 --> 00:32:54,180
o endpoint pratos, Eu vou cortar isso, todo o caminho até todos.

400
00:32:54,180 --> 00:32:59,350
Eu vou cortar isso do index.js5 e

401
00:32:59,350 --> 00:33:04,580
mover isso para o DishRouter aqui.

402
00:33:04,580 --> 00:33:11,887
Agora, quando eu mover isso para o DisHRouter, eu não preciso mais deste app.all.

403
00:33:11,887 --> 00:33:18,267
Eu simplesmente encadear isso na rota, então eu vou simplesmente dizer .all e

404
00:33:18,267 --> 00:33:24,210
então eu não preciso mais dessa definição de ponto final lá.

405
00:33:24,210 --> 00:33:24,900
É isso. Então

406
00:33:24,900 --> 00:33:28,390
ele vai dizer .all e então vamos dizer req, res, em seguida.

407
00:33:28,390 --> 00:33:31,470
E isso, tudo está operando neste ponto final específico

408
00:33:31,470 --> 00:33:33,690
já especificado aqui.

409
00:33:33,690 --> 00:33:37,920
Agora, não só isso, podemos encadear os métodos restantes.

410
00:33:37,920 --> 00:33:41,360
Então é por isso que você vê que eu removi o ponto-e-vírgula daqui.

411
00:33:41,360 --> 00:33:46,270
Vou apagar este aplicativo e depois anexá-lo a isso.

412
00:33:46,270 --> 00:33:51,600
Assim que ficar também é alterado para a rota, e então eu posso remover

413
00:33:53,140 --> 00:33:57,740
esta parte, o manuseio permanecerá exatamente o mesmo que antes.

414
00:33:57,740 --> 00:34:05,520
Assim, da mesma forma, Vou remover o, App lá.

415
00:34:05,520 --> 00:34:10,850
E, novamente, exclua isso do post.

416
00:34:10,850 --> 00:34:11,865
E a mesma coisa.

417
00:34:17,447 --> 00:34:22,248
Para colocar, e

418
00:34:22,248 --> 00:34:27,360
para deletar, a mesma coisa.

419
00:34:27,360 --> 00:34:30,800
Portanto, note que não há ponto e vírgula aqui, aqui ou

420
00:34:30,800 --> 00:34:34,670
aqui, mas o último, a exclusão, terá o ponto-e-vírgula no lugar.

421
00:34:34,670 --> 00:34:40,810
Então este grupo é uma única unidade implementada usando

422
00:34:40,810 --> 00:34:45,930
o roteador prato neste roteador particular, e todos estes são acorrentados juntos.

423
00:34:47,640 --> 00:34:52,610
E também, claro, com exclusão, preciso remover esse ponto final.

424
00:34:52,610 --> 00:34:56,626
É isso, veja, estrutura limpa do código aqui.

425
00:34:56,626 --> 00:35:02,100
Então, essencialmente, acaba implementando o DishRouter, certo,

426
00:35:02,100 --> 00:35:07,700
lembre-se, este DishRouter é definido dentro do arquivo dishRouter.js.

427
00:35:07,700 --> 00:35:12,870
Agora, eu preciso exportar isso deste módulo de nó.

428
00:35:12,870 --> 00:35:17,500
Então, para exportar isso, eu vou para o fundo aqui e

429
00:35:17,500 --> 00:35:22,877
eu vou dizer module.export e

430
00:35:22,877 --> 00:35:26,170
dizer, DishRouter.

431
00:35:26,170 --> 00:35:27,030
É isso.

432
00:35:27,030 --> 00:35:34,920
Então, agora, meu DishRouter está exportando tudo o que eu preciso.

433
00:35:34,920 --> 00:35:41,170
Agora, você está olhando para isso e dizendo, que tal prato Colon.

434
00:35:41,170 --> 00:35:47,010
Isso vai ser parte da sua primeira missão.

435
00:35:47,010 --> 00:35:53,000
Além disso, você estará implementando dois endpoints adicionais da API REST, as promoções e os líderes.

436
00:35:53,000 --> 00:35:57,960
Mas isso já mostra a estrutura de como uma

437
00:35:57,960 --> 00:36:03,080
implementação de roteadores Express de suporte a API res se parece.

438
00:36:03,080 --> 00:36:05,070
Então isso é para DisishRouter.Router.

439
00:36:05,070 --> 00:36:09,848
E uma última coisa antes que eu esqueça,

440
00:36:09,848 --> 00:36:18,140
devemos dizer dishrouter.Use (bodyparser.JSON ()).

441
00:36:20,326 --> 00:36:23,852
Agora, uma vez que você tenha concluído a implementação do DISHRouter,

442
00:36:23,852 --> 00:36:26,130
agora podemos ir para o arquivo index.js.

443
00:36:26,130 --> 00:36:34,020
Uma vez que este DishRouter é outro módulo de nó, um módulo de nó fino, no entanto.

444
00:36:34,020 --> 00:36:38,120
Então precisamos importar isso em nossa aplicação.

445
00:36:38,120 --> 00:36:44,250
Então, aqui mesmo, eu vou importar const

446
00:36:46,000 --> 00:36:52,100
DishRouter é igual a exigir.

447
00:36:52,100 --> 00:36:56,626
Agora, uma vez que este é um módulo de nó baseado em arquivo,

448
00:36:56,626 --> 00:37:03,000
eu vou dizer. /Rota/Dishrouter.

449
00:37:03,000 --> 00:37:09,850
E uma vez que eu os tenha declarado lá, então eu entro no código aqui.

450
00:37:09,850 --> 00:37:14,230
E bem ali, eu digo app.use.

451
00:37:14,230 --> 00:37:19,130
E monto o roteador em um ponto final.

452
00:37:19,130 --> 00:37:20,930
Então, como faço para montar o roteador?

453
00:37:20,930 --> 00:37:25,790
O primeiro parâmetro aqui, vou especificar pratos de barra.

454
00:37:25,790 --> 00:37:29,480
E o segundo parâmetro, especifique DishRouter.

455
00:37:30,810 --> 00:37:31,830
E é isso.

456
00:37:31,830 --> 00:37:35,080
Então o que isso significa é que na minha aplicação expressa,

457
00:37:36,205 --> 00:37:41,435
qualquer pedido vindo para esse ponto final pratos barra será tratado por DishRouter,

458
00:37:41,435 --> 00:37:45,615
e isso será feito pelo código que está presente aqui,

459
00:37:45,615 --> 00:37:50,755
porque nós dissemos rota DishRouter, e então note que isso diz barra,

460
00:37:50,755 --> 00:37:54,575
então o que significa que este é montado no ponto final de pratos de barra.

461
00:37:54,575 --> 00:37:59,378
Então é por isso que qualquer coisa que venha através de pratos de barras será enviado para este e

462
00:37:59,378 --> 00:38:00,890
será tratado por isso.

463
00:38:02,730 --> 00:38:07,000
Uma grande dica para você pensar sobre como você iria implementar

464
00:38:07,000 --> 00:38:11,020
o ponto final do id prato do cólon.

465
00:38:11,020 --> 00:38:16,440
Você ainda usará o mesmo arquivo dishRouter.js para implementar também o suporte para

466
00:38:16,440 --> 00:38:21,670
isso, /Dishes/:DISHID ponto final.

467
00:38:21,670 --> 00:38:24,580
Essa é outra grande dica para você, ok?

468
00:38:24,580 --> 00:38:29,260
Com essas alterações, vamos salvar as alterações que fizemos em

469
00:38:29,260 --> 00:38:33,870
nosso aplicativo e, em seguida, reiniciar nosso servidor e

470
00:38:33,870 --> 00:38:37,480
, em seguida, dar uma olhada em como nosso servidor vai fazer seu trabalho.

471
00:38:38,850 --> 00:38:44,190
Indo para o terminal, deixe-me reiniciar esse servidor digitando npm start.

472
00:38:44,190 --> 00:38:47,340
E assim que o servidor estiver funcionando, vou até o carteiro e

473
00:38:47,340 --> 00:38:50,220
enviar pedidos do carteiro para este servidor.

474
00:38:51,220 --> 00:38:57,110
Indo para carteiro, agora eu sei que o meu servidor está apenas apoiando

475
00:38:57,110 --> 00:39:01,690
o ponto final pratos, Eu implementei a parte ID prato dele.

476
00:39:01,690 --> 00:39:05,570
Então deixe-me enviar um pedido get para pratos anfitriões locais e

477
00:39:05,570 --> 00:39:08,590
você verá que ele funciona exatamente como antes.

478
00:39:08,590 --> 00:39:12,910
Agora, se você tiver feito uma solicitação anterior no post, então você pode simplesmente clicar sobre isso e

479
00:39:12,910 --> 00:39:15,150
, em seguida, reenviar esse pedido.

480
00:39:16,940 --> 00:39:26,680
Colocar operação não funciona, pós-operação, Funciona como você vê lá.

481
00:39:26,680 --> 00:39:32,370
E então vamos causar a operação de exclusão nos pratos.

482
00:39:32,370 --> 00:39:36,210
E diz apagar todos os pratos como esperado.

483
00:39:36,210 --> 00:39:45,230
Então, esta é a implementação do suporte de API restante usando roteador expresso.

484
00:39:45,230 --> 00:39:48,950
Com isso, completamos a segunda metade deste exercício.

485
00:39:48,950 --> 00:39:54,490
Este é um bom momento para você fazer um comentário get com o roteador express mensagem.

486
00:39:55,830 --> 00:40:00,896
Agora que concluímos este exercício onde vimos como o Express pode

487
00:40:00,896 --> 00:40:06,450
ser usado para suportar a implementação do suporte de ponto final da API Res em nosso servidor,

488
00:40:06,450 --> 00:40:08,900
e também o uso do roteador Express,

489
00:40:08,900 --> 00:40:13,906
é hora de passar para a primeira atribuição que segue esta lição.

490
00:40:13,906 --> 00:40:20,030
[ MUSIC]