1
00:00:00,270 --> 00:00:05,130
Bien, en el ejemplo estamos retomando siempre un thru, porque en realidad no estamos peleando nada.

2
00:00:05,250 --> 00:00:09,990
Entonces, bueno, podríamos también retornar un FOLS en un contexto de validación, por ejemplo, si

3
00:00:09,990 --> 00:00:12,360
falla alguna validación que queremos implementar.

4
00:00:12,440 --> 00:00:17,400
Bueno, el ejemplo típico un login de usuario cuando queremos preguntar si el usuario ha iniciado sesión,

5
00:00:17,490 --> 00:00:19,470
si está autenticado, si es true.

6
00:00:19,530 --> 00:00:24,660
Bueno, lo dejamos pasar al controlador que invoque los métodos handler sin ningún problema, pero de

7
00:00:24,660 --> 00:00:27,630
lo contrario, si no tiene sesión retornamos un fols.

8
00:00:27,750 --> 00:00:33,780
Y por supuesto que el método del controlador no se invoca en ningún momento se va a ejecutar porque

9
00:00:33,780 --> 00:00:34,320
con fols.

10
00:00:34,380 --> 00:00:40,530
Como ya he explicado en la primera clase, no continúa con la ejecución normal el flujo de nuestra aplicación,

11
00:00:40,560 --> 00:00:46,410
sino que queda hasta ahí y podemos manejar la respuesta en el interceptor, por ejemplo, redirigir

12
00:00:46,530 --> 00:00:49,170
a otra ruta, como por ejemplo voy a retornar fols.

13
00:00:50,220 --> 00:00:51,120
Solamente para ejemplo.

14
00:00:51,210 --> 00:00:54,060
Esto, por favor, no es necesario que lo hagan, lo pueden omitir.

15
00:00:54,150 --> 00:00:56,550
Solamente pongan atención para que lo vean nada más.

16
00:00:56,640 --> 00:01:02,790
Pero siempre Jeffords Bueno, debe ir acompañado de un rey directa, modificar la respuesta, redirigir

17
00:01:02,880 --> 00:01:06,090
a otra ruta, porque si no, bueno, veamos qué pasa.

18
00:01:06,240 --> 00:01:10,350
Ya tengo la ental bokken, así que vamos al navegador, ven con el pack que me refiero.

19
00:01:10,440 --> 00:01:14,670
Ya tengo lantado la aplicación de Spring, el controlador y todo está levantado.

20
00:01:14,790 --> 00:01:16,920
Así que ejecutamos el formulario.

21
00:01:17,460 --> 00:01:21,350
Se fijan, no carga el formulario, por lo tanto nos llama al controlador.

22
00:01:21,420 --> 00:01:22,380
Queda hasta ahí.

23
00:01:22,590 --> 00:01:24,330
De hecho, no tiene respuesta.

24
00:01:24,450 --> 00:01:25,800
Se genera una página en blanco.

25
00:01:25,860 --> 00:01:27,810
Entonces la idea es modificar la respuesta.

26
00:01:27,870 --> 00:01:34,230
Por ejemplo, realizando un directo, redirigir a otro controlador, a otra ruta, otro método.

27
00:01:34,290 --> 00:01:39,960
Handler Bueno, puede ser otro controlador o el mismo controlador con otra página, otra vista o ruta.

28
00:01:40,100 --> 00:01:41,760
Bueno, y cómo sería bueno?

29
00:01:41,850 --> 00:01:47,070
Este ejemplo es para que lo puedan visualizar, pero voy a redirigir a una ruta que no tengo implementada,

30
00:01:47,070 --> 00:01:53,610
por ejemplo login de otra forma para dirigir, pero por supuesto que va a lanzar un 404, que la página

31
00:01:53,610 --> 00:01:56,430
no existe, pero lo mismo es solamente para demostrar.

32
00:01:57,750 --> 00:01:59,160
Entonces es con el objeto response.

33
00:01:59,280 --> 00:02:07,000
Vamos a cambiar la ruta porque ya tenemos el método Scent Red Direct o enviar una redirección Location.

34
00:02:07,140 --> 00:02:08,700
La ruta con Spring Boot.

35
00:02:08,790 --> 00:02:17,100
Siempre la ruta tiene que partir del contexto del path base o la ruta base de nuestra aplicación request

36
00:02:17,250 --> 00:02:18,960
punto get contexto.

37
00:02:20,820 --> 00:02:24,870
Bueno, por general este context path es vacío.

38
00:02:24,960 --> 00:02:30,600
En Spring Puto, ya que no tiene un nombre de proyecto en la ruta, pero lo podría tener.

39
00:02:30,600 --> 00:02:35,730
Por ejemplo, podríamos indicar en la configuración de Spring Put cuál es nuestra ruta base.

40
00:02:35,820 --> 00:02:41,460
Aunque la mitad de los casos no necesario, pero en caso de que lo tengamos o si publicamos, por ejemplo

41
00:02:41,550 --> 00:02:46,800
en un servidor externo, el context path sería nombre del lugar que estemos publicando, por ejemplo,

42
00:02:46,800 --> 00:02:51,800
en un thon сайта externo o en cualquier servidor de aplicación, en un glacis, en un japonés.

43
00:02:52,140 --> 00:02:56,070
Da lo mismo, pero siempre tiene que ir acá y concatenados.

44
00:02:56,190 --> 00:02:57,210
Punto con Cat.

45
00:02:58,760 --> 00:03:01,410
Es Larch y la ruta lo oyen?

46
00:03:01,570 --> 00:03:03,850
Bueno, insisto, esta ruta no existe ya.

47
00:03:03,940 --> 00:03:09,370
Así que no se preocupen, pero la idea es redirigir a una página, por ejemplo Login o donde creo manejar

48
00:03:09,370 --> 00:03:11,200
esta respuesta que falló la validación.

49
00:03:11,320 --> 00:03:12,100
Voy a guardar.

50
00:03:12,220 --> 00:03:13,420
Esperemos que se actualice.

51
00:03:13,720 --> 00:03:18,850
Actualizamos acá y si se fijan, va a redirigir actualizar login.

52
00:03:18,910 --> 00:03:19,810
Se fijan campeón.

53
00:03:19,810 --> 00:03:21,040
La ruta está perfecto.

54
00:03:21,280 --> 00:03:26,230
Bueno, obviamente 404, claro, porque la página login no existe, pero da lo mismo.

55
00:03:26,380 --> 00:03:27,640
Igual la podríamos crear.

56
00:03:27,730 --> 00:03:33,970
Iba a mostrar esa página para manejar la respuesta cuando falla la validación en el interceptor.

57
00:03:34,060 --> 00:03:36,280
O quizá ni siquiera sea necesario login.

58
00:03:36,370 --> 00:03:41,500
Bueno, en el caso de un sistema usuario está bien, pero si estamos peleando otra cosa y queremos dar

59
00:03:41,500 --> 00:03:42,910
un mensaje de que falló.

60
00:03:43,000 --> 00:03:48,100
Bueno, podríamos redirigir a una ruta del controlador que carga una vista con un mensaje, por ejemplo,

61
00:03:48,280 --> 00:03:52,060
y ya atendemos de tal a tal hora o estamos fuera de horario de atención.

62
00:03:52,150 --> 00:03:55,750
En fin, lo que sea, o por el momento esta página no está disponible.

63
00:03:55,930 --> 00:04:02,680
Pero lo importante es comprender que con FOLS y con response podemos cambiar nuestra respuesta y no

64
00:04:02,680 --> 00:04:07,100
cargar el Methos, sino cargar otro método del mismo controlador o de otro controlador.

65
00:04:07,150 --> 00:04:11,260
Cambiar la respuesta voy a dejar como estaba porque era solamente para aplicar nada más.

66
00:04:11,380 --> 00:04:13,240
Entonces voy a dejar todo como estaba.

67
00:04:13,690 --> 00:04:18,070
Vamos a retornar true porque al final este interceptor no valida nada.

68
00:04:18,160 --> 00:04:23,620
Solamente realiza un calculo que el tiempo transcurrido, es decir que envuelve el método del controlador

69
00:04:23,710 --> 00:04:25,150
para calcular el tiempo ejecución.

70
00:04:25,240 --> 00:04:26,620
Guardamos y listo.

71
00:04:26,890 --> 00:04:28,150
Vamos a cerrar todo.

72
00:04:29,670 --> 00:04:35,010
Y a partir de la próxima clase vamos a ver un ejemplo también de interceptor, con una variación en

73
00:04:35,010 --> 00:04:36,690
el ejemplo horario de atención.

74
00:04:36,780 --> 00:04:42,150
Es decir, desde un rango de hora se va a mostrar y se va a cargar el controlador con el método Handler.

75
00:04:42,240 --> 00:04:47,700
Pero si estamos fuera del horario de atención, la idea es que cargue otra página con un mensaje que

76
00:04:47,700 --> 00:04:50,160
diga estamos fuera de horario de atención.

77
00:04:50,250 --> 00:04:51,690
Nos vemos en la siguiente clase.
