Expand description
REST + WebSocket API service for Vibe-Graph.
This crate provides a clean API layer that can be consumed by any frontend. It separates data serving from visualization concerns.
§Endpoints
§Graph & WebSocket API (stateful, for visualization)
GET /api/health- Health check with node/edge countsGET /api/graph- Full SourceCodeGraph JSONGET /api/graph/nodes- Nodes onlyGET /api/graph/edges- Edges onlyGET /api/graph/metadata- Graph metadataGET /api/git/changes- Current git change snapshotGET /api/ws- WebSocket for real-time updates
§Operations API (stateless, for CLI-like operations)
POST /api/ops/sync- Sync a codebaseGET /api/ops/sync?source=...- Sync with query paramsPOST /api/ops/graph- Build source code graphGET /api/ops/graph?path=...- Build graph with query paramsGET /api/ops/status?path=...- Get workspace statusGET /api/ops/load?path=...- Load project from .selfDELETE /api/ops/clean?path=...- Clean .self folderGET /api/ops/git-changes?path=...- Get git changes
§Git Commands API (for executing git operations)
POST /api/git/cmd/add- Stage filesPOST /api/git/cmd/commit- Create commitPOST /api/git/cmd/reset- Unstage filesGET /api/git/cmd/branches- List branchesPOST /api/git/cmd/checkout- Switch branchGET /api/git/cmd/log- Commit historyGET /api/git/cmd/diff- Get diff
§Usage
use vibe_graph_api::{create_api_router, create_api_state, create_ops_router};
use vibe_graph_ops::{Config, OpsContext};
// For visualization server with pre-loaded graph
let graph = vibe_graph_core::SourceCodeGraph::default();
let state = create_api_state(graph);
let router = create_api_router(state);
// For operations API
let config = Config::load().unwrap();
let ctx = OpsContext::new(config);
let ops_router = create_ops_router(ctx);Structs§
- ApiResponse
- Response wrapper with timestamp.
- ApiState
- Shared application state for the API.
Enums§
- WsClient
Message - WebSocket message sent from client to server.
- WsServer
Message - WebSocket message sent from server to client.
Functions§
- create_
api_ router - Create the API router with all endpoints.
- create_
api_ state - Create a new API state with the given graph.
- create_
api_ state_ with_ changes - Create a new API state with the given graph and git changes.
- create_
file_ router - Create a file content router for serving workspace files.
- create_
full_ api_ router - Create a combined API router with both graph/ws and ops endpoints.
- create_
full_ api_ router_ with_ git - Create a complete API router including git commands (single-repo).
- create_
full_ api_ router_ with_ git_ multi - Create a complete API router including git commands (multi-repo).
- create_
git_ commands_ router - Create a git commands router for a single-repo workspace.
- create_
git_ commands_ router_ multi - Create a git commands router for a multi-repo workspace.
- create_
ops_ router - Create the operations router with all ops endpoints.