1
00:00:03,940 --> 00:00:08,444
Neste módulo na primeira lição,

2
00:00:08,444 --> 00:00:14,115
aprendemos como construir um servidor API REST completo usando o express.

3
00:00:14,115 --> 00:00:17,120
Assim, podemos atender as

4
00:00:17,120 --> 00:00:22,185
solicitações GET, PUT, POST e DELETE que chegam aos vários pontos finais da API REST.

5
00:00:22,185 --> 00:00:24,975
Mas, o próprio servidor estava simplesmente retornando

6
00:00:24,975 --> 00:00:29,115
uma mensagem simples em resposta a essas solicitações.

7
00:00:29,115 --> 00:00:32,778
Em um servidor de API REST real,

8
00:00:32,778 --> 00:00:39,620
qualquer solicitação de entrada implicará uma operação correspondente a ser executada na parte traseira

9
00:00:39,620 --> 00:00:46,610
do banco de dados, talvez para recuperar dados para responder a uma solicitação GET,

10
00:00:46,610 --> 00:00:52,430
ou talvez para modificar dados existentes no servidor em resposta a uma solicitação PUT.

11
00:00:52,430 --> 00:00:56,270
Agora, no resto deste módulo,

12
00:00:56,270 --> 00:01:03,465
temos estudado sobre como podemos interagir a partir de um aplicativo nó com um servidor MongoDB,

13
00:01:03,465 --> 00:01:10,500
seja usando o driver MongoDB ou usando Mangusto.

14
00:01:10,500 --> 00:01:15,600
Agora, um servidor API REST completo que é capaz de lidar com

15
00:01:15,600 --> 00:01:21,468
a solicitação de ponta a ponta só será possível quando combinarmos os dois juntos.

16
00:01:21,468 --> 00:01:24,840
Ou seja, um servidor baseado em expressa que faz

17
00:01:24,840 --> 00:01:29,340
todo o processamento de lógica de negócios e, ao mesmo tempo, emitirá

18
00:01:29,340 --> 00:01:34,200
as solicitações de banco de dados para o MongoDB

19
00:01:34,200 --> 00:01:40,790
usando o driver Mongoose nó ou usando o Mongoose.

20
00:01:40,790 --> 00:01:42,780
Então, como combinamos os dois juntos?

21
00:01:42,780 --> 00:01:47,040
Então é isso que vamos olhar nesta lição em particular,

22
00:01:47,040 --> 00:01:51,230
e os dois exercícios que faremos como parte desta lição.

23
00:01:51,230 --> 00:01:55,875
Agora aprendemos como construir

24
00:01:55,875 --> 00:01:59,400
um servidor de API REST usando o Express

25
00:01:59,400 --> 00:02:03,950
e atender as várias solicitações que chegam aos pontos finais da API REST.

26
00:02:03,950 --> 00:02:10,765
Nós também vimos como podemos interagir com o banco de dados do nosso aplicativo nó.

27
00:02:10,765 --> 00:02:17,280
Agora, dado que você tem uma solicitação GET entrando no servidor como um exemplo,

28
00:02:17,280 --> 00:02:20,550
para lidar com essa solicitação GET de ponta a ponta,

29
00:02:20,550 --> 00:02:25,500
uma solicitação GET proveniente do cliente significa que o cliente deseja recuperar

30
00:02:25,500 --> 00:02:31,830
dados do servidor e usar esses dados.

31
00:02:31,830 --> 00:02:34,590
Assim, uma solicitação GET entrando no servidor terá que ser

32
00:02:34,590 --> 00:02:39,060
tratada através dos vários processamento feito por, por exemplo,

33
00:02:39,060 --> 00:02:43,880
o servidor Express e uma vez que o processamento é feito, a

34
00:02:43,880 --> 00:02:47,340
lógica de negócios do servidor Express percebe que ele precisa

35
00:02:47,340 --> 00:02:51,166
executar uma operação de consulta no banco de dados.

36
00:02:51,166 --> 00:02:54,630
Então, isso pode iniciar uma consulta para o banco de dados, a fim de

37
00:02:54,630 --> 00:02:58,605
buscar um conjunto de documentos do banco de dados,

38
00:02:58,605 --> 00:03:02,850
e, em seguida, os dados recuperados serão

39
00:03:02,850 --> 00:03:07,650
transformados em uma mensagem de resposta e, em seguida, enviados de volta para o servidor.

40
00:03:07,650 --> 00:03:15,340
Portanto, este tratamento de ponta a ponta da solicitação e resposta envolve duas partes.

41
00:03:15,340 --> 00:03:18,060
Um, claro, fazendo a lógica de negócios

42
00:03:18,060 --> 00:03:23,070
no servidor Express e, em seguida, fazendo a interação com

43
00:03:23,070 --> 00:03:27,270
o banco de dados do aplicativo nó do servidor Express, que é

44
00:03:27,270 --> 00:03:32,580
um aplicativo de nó usando driver Mongoose ou Mongoose.

45
00:03:32,580 --> 00:03:36,190
Vamos usar Mangusto nos exercícios.

46
00:03:36,190 --> 00:03:42,005
Da mesma forma, uma solicitação POST chegando

47
00:03:42,005 --> 00:03:46,420
ao ponto final da API REST no servidor significa que

48
00:03:46,420 --> 00:03:51,330
a solicitação POST traz alguns dados no corpo da mensagem.

49
00:03:51,330 --> 00:03:55,795
Então, essas informações precisam ser processadas no servidor Express

50
00:03:55,795 --> 00:04:01,150
e as informações que precisam ser armazenadas no

51
00:04:01,150 --> 00:04:07,208
banco de dados devem ser recuperadas do corpo da solicitação POST de entrada e, em seguida, a

52
00:04:07,208 --> 00:04:11,380
solicitação de criação correspondente precisa

53
00:04:11,380 --> 00:04:17,590
ser criada ou iniciada a partir do servidor Express para o banco de dados MongoDB,

54
00:04:17,590 --> 00:04:19,450
e na solicitação de criação,

55
00:04:19,450 --> 00:04:22,330
as informações que foram recuperadas do corpo

56
00:04:22,330 --> 00:04:25,870
da solicitação POST serão enviadas para

57
00:04:25,870 --> 00:04:33,130
o banco de dados para criar um novo documento em uma coleção específica no banco de dados.

58
00:04:33,130 --> 00:04:36,550
E, em seguida, o resultado desta operação será enviado de

59
00:04:36,550 --> 00:04:40,200
volta para o cliente na mensagem de resposta.

60
00:04:40,200 --> 00:04:45,640
Assim, qualquer operação que é feita em um ponto final da API REST seja um GET,

61
00:04:45,640 --> 00:04:47,155
um PUT, um POST

62
00:04:47,155 --> 00:04:48,951
ou uma operação DELETE,

63
00:04:48,951 --> 00:04:51,005
como você pode ver nesses dois exemplos,

64
00:04:51,005 --> 00:04:58,063
iniciará uma operação de banco de dados correspondente nos bastidores.

65
00:04:58,063 --> 00:05:01,120
Então, tendo entendido essa interação,

66
00:05:01,120 --> 00:05:05,590
o que percebemos é que uma solicitação HTTP chegando a

67
00:05:05,590 --> 00:05:10,360
um ponto final da API REST deve ser mapeada em uma operação de banco de dados correspondente.

68
00:05:10,360 --> 00:05:12,260
Assim, cada solicitação de entrada, o GET, PUT, POST

69
00:05:12,260 --> 00:05:19,270
ou DELETE significa que um recurso específico no banco de dados pode ser acessado,

70
00:05:19,270 --> 00:05:23,530
pode ser recuperado ou um grupo de recursos pode ser

71
00:05:23,530 --> 00:05:28,360
recuperado do banco de dados e, em seguida, enviado de volta para o servidor,

72
00:05:28,360 --> 00:05:34,015
ou um recurso pode ser modificado em resposta a um PUT ou um POST

73
00:05:34,015 --> 00:05:40,425
ou até mesmo uma solicitação DELETE chegando ao servidor de API REST.

74
00:05:40,425 --> 00:05:44,170
Portanto, cabe à lógica do servidor Express,

75
00:05:44,170 --> 00:05:47,545
a lógica de negócios implementada no servidor de API REST Express,

76
00:05:47,545 --> 00:05:53,860
lidar com essa tradução da solicitação de entrada seja uma solicitação GET,

77
00:05:53,860 --> 00:05:58,765
PUT, POST ou DELETE na operação de banco de dados correspondente.

78
00:05:58,765 --> 00:06:03,085
Então, vejamos um exemplo disso com um pouco mais de detalhes.

79
00:06:03,085 --> 00:06:07,480
Então, chegando à combinação do roteador Express mais

80
00:06:07,480 --> 00:06:12,445
MongoDB mais Mongoose atuando como o ODM entre,

81
00:06:12,445 --> 00:06:17,710
as operações a serem executadas do banco de dados devem ser iniciadas

82
00:06:17,710 --> 00:06:23,275
dentro do roteador que criamos para cada ponto final da API REST.

83
00:06:23,275 --> 00:06:24,310
Então, dentro do roteador,

84
00:06:24,310 --> 00:06:26,740
até mesmo o método GET,

85
00:06:26,740 --> 00:06:28,615
o PUT ou o método POST.

86
00:06:28,615 --> 00:06:35,440
A ação correspondente a ser executada no banco de dados se é uma solicitação GET

87
00:06:35,440 --> 00:06:39,940
causando um método de localização de pratos a ser executado ou

88
00:06:39,940 --> 00:06:44,235
uma solicitação POST causando um método de criação de pratos

89
00:06:44,235 --> 00:06:48,595
a ser executado, terá que ser feita pelo nosso servidor Express resultando

90
00:06:48,595 --> 00:06:53,285
na operação correspondente sendo iniciado no banco de dados MongoDB.

91
00:06:53,285 --> 00:06:55,555
Então, com essa compreensão de

92
00:06:55,555 --> 00:07:00,655
como as solicitações são traduzidas em operações de banco de dados correspondentes,

93
00:07:00,655 --> 00:07:06,720
vamos prosseguir para os dois exercícios onde vamos olhar para lidar com a

94
00:07:06,720 --> 00:07:15,040
solicitação GET, PUT, POST, e DELETE chegando aos pontos de extremidade /Dishes/:DISHID e

95
00:07:15,040 --> 00:07:18,940
também para modificar comentários que estão

96
00:07:18,940 --> 00:07:24,470
nos sub-documentos fechados dentro do documento prato.