Este proyecto es una API REST de backend de la aplicación AwakeSeller. El objetivo principal de este proyecto es proporcionar a los vendedores una aplicación que les ayude a mejorar sus ventas en Etsy.
- Java >= 17
- Docker
Todos los comandos deben ejecutarse en una terminal situada en la raíz del proyecto.
Necesitaremos arrancar otros servicios de los que depende nuestra aplicación (definidos en el fichero docker-compose.yml
),
docker descargará las imágenes correspondientes y levantará los contenedores necesarios:
docker-compose up -d
Principalmente, durante el desarrollo, arrancaremos la aplicación mediante nuestro IDE favorito, pero habrá ocasiones en las que necesitemos arrancarla sin el IDE. Para ello podemos usar el wrapper de Maven:
- En Windows
mvnw spring-boot:run
- En Linux/Mac
./mvnw spring-boot:run
Url de la definición de nuestra API con Swagger:
https://localhost:8080/swagger-ui/index.html
- Se permite una configuración muy poco segura de CORS y CSRF que habría que mejorar para un proyecto real
- Se ha generado un certificado autofirmado para poder conectar con la API de Etsy ya que sólo permite urls de callback de autenticación que sean https
- Al tener un certificado autofirmado, puede darse que algunos navegadores no permitan la conexión desde el frontend, por lo cual habría que indicarle al navegador que lo permita (entrando en https://localhost:8080 y diciendole al navegador que permita la conexión)
- El modelo de datos se genera automáticamente con JPA
Algunos enlaces de documentación sobre las tecnologías usadas en este proyecto:
- Docker
- Official Apache Maven documentation
- Spring Boot Maven Plugin Reference Guide
- Create an OCI image
- Spring Web
- Spring Security
- Spring Data JPA
- OpenFeign
- Springdoc
Algunas guías y tutoriales de implementación: