package server
import (
"fmt"
"github.com/gin-gonic/gin"
"gitlab.hcsci.cn/ilab/compass/transformer/editor"
"gitlab.hcsci.cn/ilab/compass/transformer/language"
"gitlab.hcsci.cn/ilab/compass/transformer/schedule"
"gitlab.hcsci.cn/ilab/compass/transformer/transformer"
"gitlab.hcsci.cn/utilitylibs/i18n"
"net/http"
)
// TransEditorData2Scheduler
//
// @Title TransEditorData2Scheduler
// @Description "转换数据"
// @Tags transformer
// @Accept application/json
// @Produce application/json
// @Param data body NewTaskEditorOutputReq true "参数模板"
// @Success 200 {object} NewTaskEditorOutputRes "转换成功"
// @Failure 400 {object} NewTaskEditorOutputRes "转换失败"
// @Router /transformer/transformWorkflow [post]
func (g *GinSer) TransEditorData2Scheduler(c *gin.Context) {
// 接收前端传来的数据
var input NewTaskEditorOutputReq
if err := c.ShouldBindJSON(&input); err != nil {
fmt.Println("解析前端传来的数据失败")
c.JSON(http.StatusBadRequest, NewTaskEditorOutputRes{
HttpErr: NewHttpErr(i18n.NewI18nStr(language.ParamInvalid, i18n.ST_I18n, i18n.NewI18nStr(err.Error(), i18n.ST_Basics))),
})
return
}
output, err := transformer.TransEditorData2Scheduler(input.Scheme)
if err != nil {
fmt.Println("转换数据失败: ", err)
c.JSON(http.StatusBadRequest, NewTaskEditorOutputRes{
HttpErr: NewHttpErr(i18n.NewI18nStr(language.ParamInvalid, i18n.ST_I18n, i18n.NewI18nStr(err.Error(), i18n.ST_Basics))),
})
return
}
fmt.Printf("转换成功")
c.JSON(http.StatusOK, NewTaskEditorOutputRes{
Scheme: output,
HttpErr: NewHttpErr(nil),
})
}
// NewTaskEditorOutputReq 接收前端传来的响应
type NewTaskEditorOutputReq struct {
Scheme editor.TaskEditorOutput `json:"scheme"`
}
// NewTaskEditorOutputRes 响应返回
type NewTaskEditorOutputRes struct {
Scheme *schedule.SchedulerOutput `json:"scheme"`
HttpErr
}
我想生成这个函数的接口,使用了swag init但是一直报错:
2025/02/21 10:09:57 Error parsing type definition 'schedule.SchedulerOutput': [tasks]: cannot find type definition: task.Task
2025/02/21 10:09:57 Error parsing type definition 'server.NewTaskEditorOutputRes': [scheme]: schedule.SchedulerOutput: [tasks]: cannot find type definition: task.Task
2025/02/21 10:09:57 ParseComment error in file /home/yky/workspace/transformer/server/transformer.go :NewTaskEditorOutputRes: [scheme]: schedule.SchedulerOutput: [tasks]: cannot find type definition: task.Task
判断为原因应该是结构体中有外部库,故不能使用swag init,要加上参数--parseDependency --parseInternal,完整命令为:
swag init --parseDependency --parseInternal