Hola a todos.
Bienvenido de nuevo.
En esta clase, vamos a construir una sencilla API restful utilizando el enfoque de módulos web funcionales.
Y para este módulo en particular trabajaremos en el servicio de revisión de películas.
Así que este servicio de reseñas de películas vino con la configuración de un proyecto en sí.
Así que vamos a explorar qué tenemos aquí.
Lo primero que te voy a enseñar es un Build. gradle.
Así que el Build. gradle es muy similar al que teníamos para el servicio de información de películas.
Si le echas un vistazo, tiene los datos MongoDB, flujo reactivo y web, y tiene una validación.
Y tenemos las anotaciones Lombok para generar el código boilerplate.
Y luego vamos a utilizar el MongoDB incrustado para la prueba y la prueba de reactor para probar el código reactivo.
Y tenemos la prueba de arranque de primavera que nos va a ayudar a escribir la prueba de unidad y prueba de integración.
La idea detrás de tener este proyecto todo configurado para usted es acelerar nuestra configuración del proyecto para que
podamos centrarnos más en la construcción del código real en lugar de gastar tiempo en la configuración del proyecto en este curso.
Ahora, la primera cosa es si usted sigue adelante y echa un vistazo a la carpeta principal, te darás cuenta
de una clase llamada Movies Review Service aplicación.
Así que esta es una clase que vamos a utilizar para iniciar la aplicación en nuestro local y tiene
un par de carpetas.
El número uno son las excepciones.
Si le echas un vistazo, tenemos una excepción llamada excepción de datos de revisión, y tenemos la excepción de revisión
no encontrada.
Utilizaremos estas excepciones a medida que avancemos en el curso.
Por ahora es sólo a efectos de conocimiento.
Disponemos de ellos como parte del propio proyecto.
Número dos: tenemos este dominio que se llama revisión.
Este es el ámbito con el que trabajaremos en el servicio de revisión.
Y si le echas un vistazo, tiene el ID de revisión y tiene esta anotación ID.
Básicamente, se trata de un campo que MongoDB va a autogenerar.
El valor número dos es el identificador de información de la película. Básicamente, cada vez que escribes una crítica de una película, tienes
que vincular esa crítica a una película, ¿verdad?
Así que este ID de información de la película es el que va a vincular la reseña a una película en particular.
Y desde el punto de vista de la revisión, tienes un comentario y luego una valoración.
Y si le echas un vistazo, esto está anotado con un documento.
Básicamente, esta es la que vamos a persistir en la base de datos Mongo.
Así que en conjunto, este es un código que vino con la configuración del proyecto.
Ahora lo que vamos a hacer, vamos a crear un enrutador y un controlador y luego construir un simple
API restful.
Así que lo primero que voy a hacer, voy a crear un paquete llamado Router, y luego
voy a crear otro paquete llamado Handler.
Ya está.
Así que tenemos esos dos paquetes creados.
Lo siguiente que voy a hacer es crear una clase llamada Review router.
Así que va a ser una revisión.
Router.
Así que esta es una clase que va a mantener las rutas, básicamente los puntos finales configurados,
y vamos a tener otra clase llamada revisiones handler.
Así que esa es la clase que se va a encargar de gestionar la revisión de la solicitud.
Ahora vamos a seguir adelante y empezar a configurar las rutas y luego conectar el controlador.
Así que lo primero es que vamos a construir una API restful muy simple.
Así que para ello vamos a configurar las rutas en esta clase.
Así que esta clase va a ser anotado con en la configuración porque vamos a crear un frijol que va a ser
explorado por la aplicación Springboard y ahí es donde todas las rutas van a ser.
Así que para ese propósito, vamos a tener esa anotación de configuración y luego vamos a seguir adelante y crear
una función.
Así que el nombre de la función va a ser pública y esta función va a devolver algo llamado función de enrutador.
Así que la función de enrutador es una forma básicamente donde se configuran todas las diferentes rutas.
Y aquí esta función va a devolver una respuesta del servidor.
Una respuesta del servidor es un tipo de respuesta en la web funcional, que en realidad va a mantener la respuesta.
Si vas a esta clase, puedes leer.
Esto representa una respuesta Http del lado del servidor tipificada como devuelta por una función manejadora, ¿correcto?
Así que en este caso, esta función en particular va a devolver la respuesta del servidor.
Y luego voy a nombrar esta función como revisiones router.
Ya está.
Bien, esta función le devolverá la fila de revisiones.
Así que vamos a seguir adelante y asegúrese de que devolver esto.
Va a ser volver.
Y aquí, lo que vamos a hacer es que vamos a llamar a otra función llamada ruta.
Así que la ruta es una función que viene con la propia web funcional.
Y si hace clic en el método estático de importación, tiene dos opciones aquí y la opción que
va a seleccionar es la función de enrutador punto ruta.
Se trata, pues, de una función de utilidad que permite configurar las rutas.
Así que lo primero es que vamos a construir una API restful muy simple.
Así que llamemos a punto get.
Así que vamos a construir una simple función hola mundo que básicamente te va a devolver el Hola
mundo.
Y luego si le echas un vistazo, la función get toma una cadena y luego una función manejadora.
Tienes muchas opciones disponibles, pero la opción que vamos a elegir es la cadena y la cadena
de la función manejadora va a ser la representación del punto final.
Y lo siguiente es una función manejadora en sí, que va a ser el manejador para esa llamada en particular.
Así que vamos a seguir adelante y el tipo de barra V una barra Hola mundo, y luego lo que vamos a hacer, vamos a crear una función de
controlador.
Así que la función de controlador, voy a utilizar una sintaxis lambda aquí y si usted echa un vistazo a él, básicamente
va a obtener la solicitud.
Así que esto es una solicitud y lo que vamos a responder es una respuesta del servidor, porque si usted echa un vistazo
a esta función, esta función devuelve una respuesta del servidor, ¿verdad?
Vamos a ponerlo en práctica.
Será el punto de respuesta del servidor.
De acuerdo.
Y entonces podemos proporcionar un valor de cuerpo.
Así que va a ser el valor del cuerpo.
Y entonces aquí usted puede proporcionar Hola mundo, Ahí lo tienes.
Y entonces lo que vamos a hacer, vamos a llamar Dot construir.
Así que esto va a configurar automáticamente la ruta y el controlador para usted.
Al principio dije que la web funcional es ligera, ¿no?
Este es uno de los motivos.
No es necesario tener una clase manipuladora dedicada.
En realidad se puede crear toda la función manejador como un parámetro como lo hicimos aquí.
Pero en realidad, a medida que avancemos en el curso, iremos conectando el manejador para manejar el código
que se va a encargar de gestionar la petición.
Pero por ahora voy a mantenerlo simple donde hemos configurado el punto final.
Al mismo tiempo, todo el manejador es un parámetro de esta función y esta es una de las bellezas de la programación
funcional donde se puede proporcionar toda la función como un parámetro.
Ahora lo que vamos a hacer es que esta aplicación se ejecute en un puerto diferente.
¿De acuerdo?
Así que aquí, vamos a seguir adelante y eliminar esto.
Ya está.
Y luego voy a crear otro archivo llamado aplicación punto yaml archivo Yaml.
Y luego aquí voy a tener este puerto configurado como servidor punto puerto igual a 8081 porque en el futuro vamos a estar
corriendo todos estos servicios en local y tener otros servidores interactuar con él.
Esa es una de las razones.
Para evitar los conflictos de puertos, quiero que este servicio se inicie en un puerto diferente.
Ahora lo que vamos a hacer, vamos a seguir adelante e iniciar esta aplicación.
Ya está.
La aplicación se inició correctamente, como siempre.
Vamos a seguir adelante y hacer un rizo para este.
Curl http dos puntos barra, barra localhost dos puntos 8080 1/V1/.
Hola, mundo.
Allá vamos.
Si pulsamos enter, obtenemos un no encontrado.
Vamos a ver.
¿Cuál es el problema?
Oh encontré el problema allí.
Nos falta esta anotación add porque cuando la aplicación spring escanea esto tiene que ser.
De lo contrario, no hay forma de que esta ruta se configure.
Ahora vamos a seguir adelante y ejecutar este ejemplo una vez más o podemos volver a ejecutar esto aquí.
Ya está.
Se ha iniciado la aplicación.
Sigamos con este punto de los dos puntos.
Y recibimos la respuesta como Hola mundo.
Así que hemos construido con éxito un muy simple Hello world endpoint utilizando el enfoque web funcional.
Así que en la siguiente conferencia vamos a seguir adelante y empezar a construir un enfoque estándar de la empresa de la construcción
de puntos finales restful utilizando el módulo web funcional.
Aquí termina esta conferencia.
Gracias por vernos.