[{"data":1,"prerenderedAt":107},["ShallowReactive",2],{"project-es-raizes-do-nordeste-api":3},{"id":4,"title":5,"author":6,"body":7,"company":84,"date":85,"description":86,"extension":87,"highlight":88,"meta":89,"navigation":88,"path":90,"priority":91,"role":92,"section":93,"seo":94,"sitemap":95,"stem":96,"tags":97,"thumbnail":104,"year":105,"__hash__":106},"work\u002Fwork\u002Fes\u002Fraizes-do-nordeste-api.md","Raízes do Nordeste API","Salguento",{"type":8,"value":9,"toc":75},"minimark",[10,15,19,23,26,30,38,41,52,56,59,63,66],[11,12,14],"h2",{"id":13},"contexto","Contexto",[16,17,18],"p",{},"Raízes do Nordeste es una API REST desarrollada para una actividad académica de Proyecto Back-End. El sistema centraliza la operación de una cadena de restaurantes con múltiples unidades: usuarios, catálogo, inventario, pedidos, campañas, cupones, fidelización y pagos. El objetivo técnico fue integrar estos recursos mediante reglas de negocio consistentes, en lugar de tratarlos como módulos CRUD independientes.",[11,20,22],{"id":21},"arquitectura","Arquitectura",[16,24,25],{},"La aplicación utiliza Java 17 y Spring Boot 3.5, con separación entre controllers, services y repositories. Los DTO definen el contrato HTTP y centralizan las validaciones de entrada. JPA y Hibernate realizan el mapeo relacional, mientras Flyway mantiene reproducible la evolución de la base de datos. El entorno local y las pruebas usan H2; también existe configuración para PostgreSQL.",[11,27,29],{"id":28},"flujos-críticos-y-consistencia","Flujos críticos y consistencia",[16,31,32,33,37],{},"La creación de un pedido reserva el inventario de la unidad elegida y aplica los beneficios en la secuencia campaña, cupón y puntos. La operación es transaccional y acepta ",[34,35,36],"code",{},"Idempotency-Key",", lo que evita pedidos duplicados cuando se reintenta la misma solicitud.",[16,39,40],{},"El pago pasa por un gateway simulado capaz de aprobar, rechazar o reproducir una indisponibilidad técnica. Una máquina de estados controla el avance del pedido, la expiración automática de reservas y la cancelación con devolución de inventario, compensación de beneficios y reembolso. Las actualizaciones condicionales y los bloqueos pesimistas protegen inventario, campañas, cupones, pagos y cancelaciones frente a conflictos concurrentes.",[16,42,43,48],{},[44,45],"img",{"alt":46,"src":47},"Diagrama de estados del pedido, desde la reserva hasta el pago, la entrega o la cancelación.","\u002Fimg\u002Fwork\u002Fraizes-backend\u002Festados-pedido.png",[49,50,51],"em",{},"Estados y transiciones controlados por el servicio de pedidos.",[11,53,55],{"id":54},"seguridad-y-protección-de-datos","Seguridad y protección de datos",[16,57,58],{},"La autenticación utiliza JWT y contraseñas protegidas con BCrypt. La autorización combina perfiles con reglas contextuales, como la propiedad del pedido y las unidades asignadas al empleado. El proyecto también registra la aceptación versionada de los términos, un consentimiento separado para fidelización, la anonimización de cuentas y los identificadores seudonimizados en los logs.",[11,60,62],{"id":61},"validación-y-límites","Validación y límites",[16,64,65],{},"La solución cuenta con 255 pruebas automatizadas. El contrato OpenAPI documenta 49 operaciones y la colección Postman reúne 35 solicitudes encadenadas con 55 aserciones. Como delimitación, el gateway no realiza transacciones financieras reales y la aplicación no representa un despliegue de producción.",[16,67,68],{},[69,70,74],"a",{":rel":71,":target":72,"href":73},"noreferrer","_blank","https:\u002F\u002Fgithub.com\u002Fsalguento\u002Fprojeto-back-end-uninter","GitHub",{"title":76,"searchDepth":77,"depth":77,"links":78},"",2,[79,80,81,82,83],{"id":13,"depth":77,"text":14},{"id":21,"depth":77,"text":22},{"id":28,"depth":77,"text":29},{"id":54,"depth":77,"text":55},{"id":61,"depth":77,"text":62},"Proyecto académico","2026-07","API REST para pedidos multicanal, inventario por unidad y pagos simulados","md",true,{},"\u002Fwork\u002Fes\u002Fraizes-do-nordeste-api","1","Desarrollador Back-End","featured",{"title":5,"description":86},{"loc":90},"work\u002Fes\u002Fraizes-do-nordeste-api",[98,99,100,101,102,103],"Java","Spring Boot","REST","Spring Security","JPA","OpenAPI","\u002Fimg\u002Fwork\u002Fraizes-backend\u002Fcover-raizes-do-nordeste.png",2026,"7znK14AxGjBnH9QQCdn__T1lExkcdgxbdv4o-h2QZVw",1785351610191]