diff --git a/server.go b/server.go index b44488b..9373d5e 100644 --- a/server.go +++ b/server.go @@ -618,6 +618,7 @@ func MakeHttpApiReceiver[T any](receiver *T) HttpApiReceiver { tp := reflect.TypeOf(receiver) name := tp.Elem().Name() + writerType := reflect.TypeOf((*http.ResponseWriter)(nil)).Elem() for i := 0; i < tp.NumMethod(); i++ { method := tp.Method(i) if method.Type.NumIn() != 3 { @@ -628,8 +629,7 @@ func MakeHttpApiReceiver[T any](receiver *T) HttpApiReceiver { continue } - var w http.ResponseWriter - if method.Type.In(1) != reflect.TypeOf(w) { + if !method.Type.In(1).Implements(writerType) { continue }