47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package handlers
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"knowledge-graph-backend/services"
|
|
)
|
|
|
|
type GraphHandler struct {
|
|
service services.GraphService
|
|
}
|
|
|
|
func NewGraphHandler(service services.GraphService) *GraphHandler {
|
|
return &GraphHandler{
|
|
service: service,
|
|
}
|
|
}
|
|
|
|
// @Summary 获取图数据
|
|
// @Description 获取知识图谱的全部节点和边数据
|
|
// @Produce json
|
|
// @Success 200 {object} models.GraphData "成功"
|
|
// @Failure 500 {object} models.ErrorResponse "内部错误"
|
|
// @Router /api/graph [get]
|
|
func (h *GraphHandler) GetGraphData(c *gin.Context) {
|
|
data := h.service.GetGraphData()
|
|
c.JSON(http.StatusOK, data)
|
|
}
|
|
|
|
// @Summary 获取图统计信息
|
|
// @Description 获取知识图谱的节点数、边数等统计信息
|
|
// @Produce json
|
|
// @Success 200 {object} map[string]interface{} "成功"
|
|
// @Failure 500 {object} models.ErrorResponse "内部错误"
|
|
// @Router /api/graph/stats [get]
|
|
func (h *GraphHandler) GetStats(c *gin.Context) {
|
|
stats := h.service.GetStats()
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"stats": stats,
|
|
"timestamp": gin.H{
|
|
"totalNodes": stats["totalNodes"],
|
|
"totalEdges": stats["totalEdges"],
|
|
},
|
|
})
|
|
}
|