How bintangstilllerning/crud-api-sprint works
This is a Go HTTP API for product catalog management and order creation/listing. Requests enter through the router in main.go, reach resource controllers, and are handled by services that coordinate repositories and MySQL transactions. Product operations include create, list, update, and delete in the code, though main.go only registers create, list, and delete routes. Order creation saves an order and its items after looking up referenced products. The README is empty; the graph reflects sampled source, and does not infer uninspected behavior.
Main entry points: product_controller.go Product Controller · order_service.go Order Service · main.go HTTP Router · order_controller.go Order Controller
Components 14
HTTP API
- HTTP Router
main.go - Product Controller
controller/product_controller.go - Order Controller
controller/order_controller.go - Product Web Models
domain/web/product_create_request.go - Order Web Models
domain/web/order_create_request.go - Web Response
domain/web/web_response.go
Application Logic
- Product Service
service/product_service.go - Order Service
service/order_service.go - Product Model
domain/product.go - Order Model
domain/order.go
Persistence
- Product Repository
repository/product_repository.go - Order Repository
repository/order_repository.go
Other components
- API Client
- MySQL Database
Connections 15
- API Client → HTTP Router: sends HTTP
- HTTP Router → Product Controller: routes product requests
- HTTP Router → Order Controller: routes order requests
- Product Controller → Product Web Models: decodes and encodes
- Order Controller → Order Web Models: decodes and encodes
- Product Controller → Web Response: builds responses
- Product Controller → Product Service: calls operations
- Order Controller → Order Service: calls operations
- Product Service → Product Repository: calls operations
- Order Service → Order Repository: saves and lists
- Order Service → Product Repository: looks up products
- Product Service → MySQL Database: manages transactions
- Order Service → MySQL Database: manages transactions
- Product Repository → MySQL Database: queries products
- Order Repository → MySQL Database: queries orders