Files
knowledge-graph-agent/backend/internal/handler/search_handler.go
T

40 lines
987 B
Go
Raw Normal View History

2026-04-15 15:19:39 +08:00
package handler
2026-04-05 15:03:56 +08:00
import (
"net/http"
"github.com/gin-gonic/gin"
2026-04-28 12:53:01 +08:00
"knowledge-graph-backend/internal/model"
2026-04-15 15:19:39 +08:00
"knowledge-graph-backend/internal/service"
2026-04-05 15:03:56 +08:00
)
type SearchHandler struct {
2026-04-15 15:19:39 +08:00
service service.GraphService
2026-04-05 15:03:56 +08:00
}
2026-04-15 15:19:39 +08:00
func NewSearchHandler(svc service.GraphService) *SearchHandler {
2026-04-05 15:03:56 +08:00
return &SearchHandler{
2026-04-15 15:19:39 +08:00
service: svc,
2026-04-05 15:03:56 +08:00
}
}
2026-04-13 16:16:39 +08:00
// @Summary 搜索节点
// @Description 根据关键词搜索知识图谱中的节点
// @Produce json
// @Param q query string true "搜索关键词"
2026-04-15 15:19:39 +08:00
// @Success 200 {object} model.SearchResponse "成功"
// @Failure 400 {object} model.ErrorResponse "请求错误"
// @Failure 500 {object} model.ErrorResponse "内部错误"
2026-04-13 16:16:39 +08:00
// @Router /api/search [get]
2026-04-05 15:03:56 +08:00
func (h *SearchHandler) SearchNodes(c *gin.Context) {
query := c.Query("q")
if query == "" {
2026-04-28 12:53:01 +08:00
c.JSON(http.StatusBadRequest, model.ErrorResponse{Error: "bad_request", Message: "Query parameter 'q' is required"})
2026-04-05 15:03:56 +08:00
return
}
results := h.service.SearchNodes(query)
2026-04-05 15:03:56 +08:00
c.JSON(http.StatusOK, results)
}