How mcholismalik/crud-api-go-echo works
A Go Echo API boilerplate with authentication and sample CRUD endpoints. The documented request path is HTTP routing through middleware and handlers into services and repositories, with database-backed models and shared response, validation, filtering, pagination, and transaction support. Auth source confirms handler-to-service and service-to-user-repository calls; the sample workflow and several wiring details are based on README capabilities and the file tree, so uncertain call edges are omitted.
Main entry points: main.go Application Startup · auth/handler.go Auth Handler · sample/handler.go Sample Handler · http HTTP Routes
Components 25
HTTP Entry
- Application Startup
main.go - Middleware
internal/middleware - HTTP Routes
internal/http
Authentication
- Auth Routes
internal/app/auth/route.go - Auth Handler
internal/app/auth/handler.go - Auth Service
internal/app/auth/service.go - Auth DTOs
internal/dto/auth.go
Sample API
- Sample Routes
internal/app/sample/route.go - Sample Handler
internal/app/sample/handler.go - Sample Service
internal/app/sample/service.go - Sample DTOs
internal/dto/sample.go
Persistence
- Dependency Factory
internal/factory/factory.go - User Repository
internal/repository/user.go - Sample Repository
internal/repository/sample.go - Domain Models
internal/model - Database
database/database.go - Schema Migration
database/migration/migration.go - Repository Abstraction
internal/abstraction/repository.go
Shared Services
- Transactions
pkg/util/trxmanager/trxmanager.go - Validation
pkg/util/validator - API Responses
pkg/util/response - Pagination Context
internal/abstraction/pagination.go - Elasticsearch Client
pkg/elasticsearch/service.go - Log Services
pkg/log/service.go
Other components
- API Client
Connections 31
- API Client → HTTP Routes: HTTP requests
- Application Startup → Database: initializes
- Application Startup → Schema Migration: runs migrations
- Application Startup → Elasticsearch Client: initializes
- Application Startup → Middleware: installs
- Application Startup → Dependency Factory: creates
- Application Startup → HTTP Routes: starts
- HTTP Routes → Auth Routes: registers
- HTTP Routes → Sample Routes: registers
- Auth Routes → Auth Handler: dispatches
- Sample Routes → Sample Handler: dispatches
- Auth Handler → Auth Service: calls
- Auth Handler → Auth DTOs: binds
- Auth Handler → Validation: validates
- Auth Handler → API Responses: sends
- Auth Service → User Repository: calls
- Auth Service → Transactions: runs registration
- Sample Handler → Sample Service: calls
- Sample Handler → Sample DTOs: binds
- Sample Handler → Validation: validates
- Sample Handler → API Responses: sends
- Sample Service → Sample Repository: uses
- Sample Service → Transactions: uses
- User Repository → Repository Abstraction: uses
- Sample Repository → Repository Abstraction: uses
- User Repository → Domain Models: reads and writes
- Sample Repository → Domain Models: reads and writes
- Repository Abstraction → Database: queries
- Transactions → Database: begins and commits
- Schema Migration → Database: updates schema
- Log Services → Elasticsearch Client: indexes logs