Is posible to reuse field resolver? Also is posible to set global resolver and use by name?
- 主要语言
- Go
- 星标
- 10.8k
- 派生
- 1.3k
- 平均合并
- 2 天 36 分钟
- 30 天内合并 PR
- 26
描述
type PresetDates {
edited(format: String): StringDate! @goField(name:"DatetimeFormatResolver")
added(format: String): StringDate! @goField(name:"DatetimeFormatResolver")
}
1 i have many fields where i need to convert some types, in that example i converting date to string, on each field automatically generate a resolver from where i call function that execute a logic , but i think it will be better if i can set somewhere a function directly, it reduce considedable a code, now i have in project arount a 100 same resolvers.
2 also if i set direct name of resolver ( to can reuse one ), it generate a few identical function, is normal?
example generated go interface ( also in resolver appear 2 identical function ):
type PresetDatesResolver interface {
DatetimeFormatResolver(ctx context.Context, obj *structure_999.PresetDates, input *domain.DatetimeFormat) (string, error)
DatetimeFormatResolver(ctx context.Context, obj *structure_999.PresetDates, input *domain.DatetimeFormat) (string, error)
}
3 Is posible to set a global resolver? for some conversion, and set that on field settings
贡献指南
调研方向
查看 gqlgen 的代码生成过程,尤其是如何根据 @goField 等指令生成 resolver。检查 resolver 接口生成逻辑,以了解为什么会出现重复方法。检查文档或现有代码中是否存在用于全局或共享 resolver 的机制。目标是提出一种在多个字段之间复用 resolver 逻辑而不产生重复的方法。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- go, graphql
- 领域
- api, backend
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 30/100