关于GO项目中swag init报错“Error parsing type definition”

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值