feat: 知识图谱测试api
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"knowledge-graph-backend/handlers"
|
||||
"knowledge-graph-backend/services"
|
||||
)
|
||||
|
||||
const (
|
||||
PORT = "3001"
|
||||
DATA_FILE = "data.json"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
dataService, err := services.NewDataService(DATA_FILE)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize data service: %v", err)
|
||||
}
|
||||
|
||||
graphHandler := handlers.NewGraphHandler(dataService)
|
||||
searchHandler := handlers.NewSearchHandler(dataService)
|
||||
nodeHandler := handlers.NewNodeHandler(dataService)
|
||||
|
||||
router := gin.Default()
|
||||
|
||||
router.Use(cors.New(cors.Config{
|
||||
AllowOrigins: []string{"http://localhost:5173", "http://localhost:3000"},
|
||||
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
|
||||
AllowHeaders: []string{"Origin", "Content-Type", "Authorization", "Accept"},
|
||||
ExposeHeaders: []string{"Content-Length", "Content-Type"},
|
||||
AllowCredentials: true,
|
||||
MaxAge: 12 * 3600,
|
||||
}))
|
||||
|
||||
router.GET("/health", func(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"status": "ok",
|
||||
"message": "Knowledge Graph API is running",
|
||||
"version": "1.0.0",
|
||||
})
|
||||
})
|
||||
|
||||
api := router.Group("/api")
|
||||
{
|
||||
api.GET("/graph", graphHandler.GetGraphData)
|
||||
api.GET("/graph/stats", graphHandler.GetStats)
|
||||
|
||||
api.GET("/search", searchHandler.SearchNodes)
|
||||
|
||||
api.GET("/nodes/:id", nodeHandler.GetNodeByID)
|
||||
api.GET("/nodes/:id/neighbors", nodeHandler.GetNeighbors)
|
||||
}
|
||||
|
||||
log.Println("Knowledge Graph API Server running on http://localhost:" + PORT)
|
||||
log.Println("Data file loaded from: " + DATA_FILE)
|
||||
log.Println("Available endpoints:")
|
||||
log.Println(" GET /health - Health check")
|
||||
log.Println(" GET /api/graph - Get all graph data")
|
||||
log.Println(" GET /api/graph/stats - Get graph statistics")
|
||||
log.Println(" GET /api/search?q=query - Search nodes")
|
||||
log.Println(" GET /api/nodes/:id - Get node by ID")
|
||||
log.Println(" GET /api/nodes/:id/neighbors - Get node neighbors")
|
||||
|
||||
if err := router.Run(":" + PORT); err != nil {
|
||||
log.Fatalf("Failed to start server: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user