...
- Todas los controladores que expongan APIs rest deberán estar dentro del paquete de servicios rest (paquetes con sufijo rest): "es.um.atica.xxx.xxx.rest".
- Proveer los endpoints para que los diferentes servicios accedan a nuestro backend.
- Dividir los endpoints entre públicos y privados: Para ello los endpoints públicos deberán ir en el path ".../public/..." y los privados en ".../private/..."
- Controlar el acceso a los diferentes endpoints privados tanto a nivel de autenticación como de autorización.
- Estará anotada con @RestController
- Deberá indicar el path donde este controlador escucha: @RequestMapping(value = "/public/....")
- Varios manejadores podrán mapear la ruta raiz indicada en @RequestMapping, pero lo recomendable es que cada manejador gestione un contexto /public/alumnos, /public/pdi, etc.
- En las respuestas a las peticiones deberá usar los códigos HTTP para indicar el estado devolviendo 200 sólo si la respuesta es correcta, en caso de errores controlados se deberá hacer uso de los códigos 400
- Deberán tratar las excepciones producidas para dar una respuesta coherente a la parte cliente.
Servicios
...
- Repository: Serán los repositorios que accederán a la base de datos se deberán alojar en "es.um.atica.xxx.xxx.repository"
- PAO/DAO: Serán los encargados de llamar a paquetes/prodecimientos de base de datos, deberán estar en "es.um.atica.xxx.xxx.pao/dao"
Entity: Clases Java que mapean en entidades "es.um.atica.xxx.xxx.entity"
DTO/MODEL: DTO Clases java que mapean entidades a tipos más simples de cara a devolver en los servicios REST "es.um.atica.xxx.xxx.dto". MODEL Clases Java que se usan en la aplicación como modelo de datos pero que no equivalen a entidades "es.um.atica.xxx.xxx.dto"