feat: 前端对接后端增删查改接口
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user