How theusinhoiost/delivery-api works
Delivery Tech API is a Spring Boot REST backend for customer, restaurant, product, and order management. A caller submits requests to domain controllers; the order workflow validates the customer, restaurant, and products, calculates totals, and persists the order. Separate branches cover catalog maintenance, authentication, and health/info endpoints. The README documents H2 in-memory storage and API capabilities; sampled source confirms order and restaurant service behavior, while several controller and service implementations were not sampled, so their internal wiring is represented only where supported by the module structure.
Main entry points: PedidoServiceImpl.java Order workflow · entity Domain entities · ClienteServiceImpl.java Client management · RestauranteServiceImpl.java Restaurant catalog
Components 24
HTTP API
- Auth endpoints
src/main/java/com/deliverytech/delivery_api/controller/AuthController.java - Client endpoints
src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java - Restaurant endpoints
src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java - Product endpoints
src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java - Order endpoints
src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java - Health and info
src/main/java/com/deliverytech/delivery_api/controller/HealthController.java - Error responses
src/main/java/com/deliverytech/delivery_api/exception/GlobalExceptionHandler.java - DTO mapping
src/main/java/com/deliverytech/delivery_api/config/ModelMapperConfig.java
Delivery Domain
- Client management
src/main/java/com/deliverytech/delivery_api/service/impl/ClienteServiceImpl.java - Restaurant catalog
src/main/java/com/deliverytech/delivery_api/service/impl/RestauranteServiceImpl.java - Product catalog
src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java - Order workflow
src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java - Domain entities
src/main/java/com/deliverytech/delivery_api/entity
Identity & Security
- Authentication
src/main/java/com/deliverytech/delivery_api/service/AuthService.java - JWT filter
src/main/java/com/deliverytech/delivery_api/security/JwtAuthenticationFilter.java - JWT utilities
src/main/java/com/deliverytech/delivery_api/security/JwtUtil.java - Security rules
src/main/java/com/deliverytech/delivery_api/config/SecurityConfig.java
Persistence
- Client repository
src/main/java/com/deliverytech/delivery_api/repository/ClienteRepository.java - Restaurant repository
src/main/java/com/deliverytech/delivery_api/repository/RestauranteRepository.java - Product repository
src/main/java/com/deliverytech/delivery_api/repository/ProdutoRepository.java - Order repository
src/main/java/com/deliverytech/delivery_api/repository/PedidoRepository.java - User repository
src/main/java/com/deliverytech/delivery_api/repository/UsuarioRepository.java - H2 database
Other components
- API caller
Connections 32
- API caller → Auth endpoints: sends auth requests
- API caller → Client endpoints: sends client requests
- API caller → Restaurant endpoints: sends restaurant requests
- API caller → Product endpoints: sends product requests
- API caller → Order endpoints: sends order requests
- API caller → Health and info: checks status
- Auth endpoints → Authentication: invokes auth
- Authentication → User repository: reads and saves users
- Security rules → JWT filter: registers filter
- JWT filter → JWT utilities: validates tokens
- JWT filter → Authentication: loads user
- Client endpoints → Client management: invokes client operations
- Restaurant endpoints → Restaurant catalog: invokes catalog operations
- Product endpoints → Product catalog: invokes product operations
- Order endpoints → Order workflow: invokes order operations
- Client management → Client repository: reads and writes clients
- Restaurant catalog → Restaurant repository: reads and writes restaurants
- Product catalog → Product repository: reads and writes products
- Order workflow → Client repository: validates customer
- Order workflow → Restaurant repository: validates restaurant
- Order workflow → Product repository: validates and prices items
- Order workflow → Order repository: loads and saves orders
- Client repository → H2 database: persists entities
- Restaurant repository → H2 database: persists entities
- Product repository → H2 database: persists entities
- Order repository → H2 database: persists orders
- User repository → H2 database: persists users
- Order workflow → DTO mapping: maps order responses
- Restaurant catalog → Domain entities: converts restaurant data
- Client management → Domain entities: manages client data
- Product catalog → Domain entities: manages product data
- Order workflow → Domain entities: builds order records