How daniel-dos/ff-codex works
FF Codex is a Rust/Axum REST API for querying and managing Final Fantasy games and characters. The main workflow is HTTP routing to handlers, service-level orchestration, SQLx repositories, and PostgreSQL, with handlers converting domain results to API responses. It supports game filtering, lookup, creation and deletion; character listing, lookup, creation and game-character associations; and a health endpoint. The README documents these layers and capabilities; some route, server, DTO, and character repository implementation details were not sampled, so uncertain wiring is omitted.
Main entry points: main.rs Application bootstrap · router.rs API router · games_handler.rs Game handlers · characters_handler.rs Character handlers
Components 20
HTTP API
- API router
app/src/rest/routes/router.rs - Game routes
app/src/rest/routes/games.rs - Character routes
app/src/rest/routes/characters.rs - Game handlers
app/src/rest/handler/games_handler.rs - Character handlers
app/src/rest/handler/characters_handler.rs - Health handler
app/src/rest/handler/health.rs - API DTOs
app/src/rest/dto - API errors
app/src/rest/error.rs - App state
app/src/rest/app_state.rs - HTTP server
app/src/rest/server_app.rs
Services and Domain
- Game service
app/src/service/game_service.rs - Character service
app/src/service/characters_service.rs - Domain models
app/src/domain
Persistence
- Game repository
app/src/repository/game.rs - Character repository
app/src/repository/character.rs - Game queries
app/sql/games - Character queries
app/sql/characters
Other components
- API client
- PostgreSQL
- Application bootstrap
app/src/main.rs
Connections 29
- API client → API router: sends requests
- API router → Game routes: dispatches
- API router → Character routes: dispatches
- API router → Health handler: dispatches
- Game routes → Game handlers: routes to
- Character routes → Character handlers: routes to
- Game handlers → Game service: calls
- Character handlers → Character service: calls
- Game handlers → API DTOs: maps responses
- Character handlers → API DTOs: maps responses
- Game handlers → API errors: maps errors
- Character handlers → API errors: maps errors
- Game service → Game repository: delegates queries
- Character service → Character repository: delegates queries
- Game service → Domain models: uses models
- Character service → Domain models: uses models
- Game repository → Game queries: executes queries
- Character repository → Character queries: executes queries
- Game repository → PostgreSQL: reads and writes
- Character repository → PostgreSQL: reads and writes
- Application bootstrap → PostgreSQL: connects pool
- Application bootstrap → Game repository: constructs
- Application bootstrap → Character repository: constructs
- Application bootstrap → App state: injects services
- Application bootstrap → API router: builds
- Application bootstrap → HTTP server: starts
- HTTP server → API router: serves
- Game handlers → API client: returns API response
- Character handlers → API client: returns API response