feat: 前端对接后端增删查改接口

This commit is contained in:
2026-04-17 14:41:21 +08:00
parent 5d4bf761b8
commit 61e9b87e98
20 changed files with 2022 additions and 27 deletions
+65 -1
View File
@@ -1,5 +1,17 @@
import axios from 'axios';
import type { GraphData, Node } from '../types/graph';
import type {
GraphData,
Node,
CreateNodeRequest,
UpdateNodeRequest,
CreateEdgeRequest,
DeleteResponse,
EdgeResponse,
NeighborResponse,
SearchResponse,
SimpleGraphData,
GraphStats,
} from '../types/graph';
import { API_BASE_URL, API_TIMEOUT } from '../config/constants';
/**
@@ -47,6 +59,58 @@ export const graphApi = {
return null;
}
},
async createNode(request: CreateNodeRequest): Promise<Node> {
const response = await apiClient.post<Node>('/nodes', request);
return response.data;
},
async updateNode(id: string, request: UpdateNodeRequest): Promise<Node> {
const response = await apiClient.put<Node>(`/nodes/${id}`, request);
return response.data;
},
async deleteNode(id: string): Promise<DeleteResponse> {
const response = await apiClient.delete<DeleteResponse>(`/nodes/${id}`);
return response.data;
},
async getNodeNeighbors(id: string): Promise<NeighborResponse> {
const response = await apiClient.get<NeighborResponse>(`/nodes/${id}/neighbors`);
return response.data;
},
async createEdge(request: CreateEdgeRequest): Promise<EdgeResponse> {
const response = await apiClient.post<EdgeResponse>('/edges', request);
return response.data;
},
async deleteEdge(id: string): Promise<DeleteResponse> {
const response = await apiClient.delete<DeleteResponse>(`/edges/${id}`);
return response.data;
},
async getGraphStats(): Promise<GraphStats> {
const response = await apiClient.get<GraphStats>('/graph/stats');
return response.data;
},
async getSimpleGraphData(): Promise<SimpleGraphData> {
const response = await apiClient.get<SimpleGraphData>('/graph/simpleJson');
return response.data;
},
async searchNodes(query: string): Promise<SearchResponse> {
const response = await apiClient.get<SearchResponse>('/search', {
params: { q: query },
});
return response.data;
},
async healthCheck(): Promise<{ status: string }> {
const response = await apiClient.get<{ status: string }>('/health');
return response.data;
},
};
export default apiClient;