下記のように、自作の関数を足したContextを渡せないかと思ったのですが、これはできませんでした。
なにか方法はないでしょうか?
go
1type Context struct { 2 gin.Context 3} 4 5func (c *Context) Foo() { 6}
go
1router := gin.Default() 2v1 := router.Group("/v1") 3v1.POST("/foos", func(c *Context) { foo.Add(c) })
もともと何をしたかったかというと、DIを試したくて、ginを依存として注入したくこのようなinterfaceに依存するhandlerを作っていました。
go
1type Context interface { 2 Param(string) string 3 Bind(interface{}) error 4}
ただ、そうすると、たとえば下記のようにRequestを介して関数を呼び出す場合にどうしていいかわからなくなり、試行錯誤した結果最初の質問に至りました。
go
1c.Request.FormFile("image")
そもそも、DIにはなっているかもしれないけどginに依存しまくっている (というかginありき) じゃんと言われればそうなのですが、アーキテクチャとして試してみたく質問させていただきました。
ご助言よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/28 05:41 編集
2021/04/28 06:08
2021/04/28 06:27