api container runs the .NET API server that orchestrates all operations.
Responsibilities
The API server is the central hub that:- Exposes REST endpoints for the frontend
- Orchestrates code analysis via the analyzer service
- Manages graph data in the database
- Coordinates GPU layout computation
- Hosts the plugin/overlay system
Architecture
Controllers
REST endpoints that receive HTTP requests from the frontend
Core Business Logic
Pure domain logic with no external dependencies
Ports (Interfaces)
Abstractions for external services (database, GPU, analyzer)
Adapters
Implementations that connect to actual services
Key Concepts
API Endpoints
Graph Data
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/graph | Get all nodes and edges with attributes |
| GET | /api/graph/nodes/{nodeId} | Get single node by ID |
| POST | /api/graph/layout | Save layout positions to database |
| DELETE | /api/graph/layout | Clear layout positions |
GPU Layout
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/graph/layout/compute | Trigger GPU layout computation |
| GET | /api/graph/layout/compute/status | Get computation progress |
| POST | /api/graph/layout/compute/cancel | Cancel running computation |
| GET | /api/graph/layout/compute/available | Check if GPU available |
Overlays
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/overlays | Get all registered plugins |
| POST | /api/overlays/{pluginId}/apply | Apply plugin data |
| DELETE | /api/overlays/{pluginId}/apply | Remove plugin data |
Services
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health | Service health status |
| GET | /api/services | List all services |
| GET | /api/examples | List example codebases |
| POST | /api/examples/{name}/load | Load example |