Skip to content

Ejemplos funcionales de SpringBoot/Spring Framework para la docencia de la asignatura de Tecnologías Informáticas para la Web en la UC3M (4º Ingeniería Informática)

Notifications You must be signed in to change notification settings

alreylz/springboot-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TIW [2022-23] SpringBootCourse

Author :@alreylz

Ejemplos funcionales de SpringBoot/Spring Framework para la asignatura de Tecnologías Informáticas para la Web (2022-2023)

0. Configuración para ejecutar los ejemplos


/setup: Contiene datos de ejemplo que pueden ser usados para inicializar la persistencia (rellenar la base de datos) E.g., scripts de bases de datos, imágenes de prueba, etc.

Importante saber en qué puerto está ejecutando nuestra aplicación a la hora de probar las APIs, puesto que (ver archivo applicacion.properties).

1. Spring Web: Respondiendo a peticiones HTTP


El "Nuevo Servlet" -> Respondiendo a peticiones HTTP (GET/POST/PUT/DELETE)

representations/... -> Clases sin respaldo en base de datos que pueden ser devueltas como representación al llamarse a nuestra API REST

controllers/BasicController -> Clase con @Controller que tiene una serie de endpoints accesibles y que demuestran el uso de spring web para contestar peticiones.

Creación de APIs REST con Spring + devolver representaciones JSON/XML

representations/... -> Clases sin respaldo en base de datos que pueden ser devueltas como representación al llamarse a nuestra API REST

controllers/SampleWebControllerNoPersistence -> Controlador que ejemplifica un API rest pero sin respaldo con base de datos (se simula la persistencia por medio de una serie de listas que se van actualizando según las peticiones que se realicen.)

API Rest con control de códigos de estado (ResponseEntity<>)

controllers/ComputerRestControllerWResponseEntity --> Clase controller con respaldo en base de datos que hace accesibles una serie de enpoints para Crear, Actualizar, Eliminar y Buscar objetos 'Computer'

repos/ComputerDAO --> DAO que extiende de CrudRepository para la gestión de objetos 'Computer'

mysql.entities/Computer -> Clase entidad asociada con la base de datos

2. Persistencia (Spring Data):


Acceso a base de datos y realización de operaciones a nivel de objeto con JPA.

Importante especificar en el archivo application.properties los valores correctos para usuario, contraseña y uri de la base de datos (obligatorio para MySQL).

CRUD(Create,Read,Update,Delete) sobre Mysql

Person REST API (Work In Progress)

...

Computer REST API

mysql.entities/Computer -> Clase entidad asociada con la base de datos

repos/ComputerDAO -> DAO que extiende de CrudRepository para la gestión de objetos 'Computer'

controllers/ComputerRestController -> Controlador encargado de hacer accesible la API

CRUD MongoDB

Person REST API (Work In Progress)

mysql.documents/Person -> Clase @Document que tiene asociada una colección en MongoDB

repos/MongoRepo -> DAO que extiende de CrudRepository y accede a MongoDB

controllers/MongoController

... More examples coming

3. Vistas y consumo de APIs REST: (Work In Progress)


JSP en Spring (no recomendado) : Necesita configuraciones varias y está deprecado

Necesario crear sistema de carpetas webapp/WEB-INF/views donde metereremos las vistas .jsp

Descomentar la clase ConfigEnableJSPAndThymeleaf.java para poder usar JSPs y Thymeleaf a la vez (pero todas las vistas han de ir dentro de la carpeta anteriormente mencionada)

Thymeleaf

templates/ShowPersonData.html -> Construye una tabla dinámicamente que muestra todos los elementos 'Person' que hay en la base de datos mysql

templates/PersonCreateForm.html -> Muestra un formulario de thymeleaf y especifica dinámicamente la url a la que se realiza la petición para insertar a una persona.

controllers/ThymeleafControllers -> Clase controlador que permite mostrar las vistas asociadas y que le pasa la información a mostrar a estas por medio de la clase Model.

... More examples coming

Consumo de API Rest en Spring

RestTemplate, códigos de estado y peticiones a microservicios desde otros microservicios o el front.

controllers/SpringAPIConsumer -> Urls que ser solicitadas realizan llamadas a una API y muestran el resultado de las mismas. Usan una instancia de RestTemplate para realizar las llamadas a APIs.

controllers/ComputerRestController -> Código de la API REST que responde a las peticiones como tal

4. Spring Security: (Work In Progress)


About

Ejemplos funcionales de SpringBoot/Spring Framework para la docencia de la asignatura de Tecnologías Informáticas para la Web en la UC3M (4º Ingeniería Informática)

Topics

Resources

Stars

Watchers

Forks