gqlgenではカスタムデータ型を定義できる
gqlgen.ymlのmodelsセクションは利用可能な型を列挙するで公式の型を参照したが、ユーザー独自の型を定義してそれを models セクションに利用できる。このとき、定義の方法は2通りの方法がある。
Goのコードにおいてtypeを使って自分で定義する型の場合は MarshalGQL と UnmarshalGQL を実装すればいい。
type UserID int
func (UserID) MarshalGQL(w io.Writer)func (UserID) UnmarshalGQL(v any) errorもうひとつ、int64 のように事前に定義された型または MarshalGQL 等を実装できない型の場合は、一定の規則に沿った関数名を実装する。
func MarshalUserID(int64) graphql.Marshalerfunc UnmarshalUserID(v any) (int64, error)