package httpx import ( "context" "net/http" strictnethttp "github.com/oapi-codegen/runtime/strictmiddleware/nethttp" ) type requestKey struct{} // StrictRequest — middleware strict-сервера: кладёт *http.Request в контекст для обработчиков, // которым нужен сам запрос (Range при отдаче файлов без nginx). func StrictRequest(next strictnethttp.StrictHTTPHandlerFunc, _ string) strictnethttp.StrictHTTPHandlerFunc { return func(ctx context.Context, w http.ResponseWriter, r *http.Request, req any) (any, error) { return next(context.WithValue(ctx, requestKey{}, r), w, r, req) } } // RequestFrom — исходный HTTP-запрос (nil вне strict-обработчика). func RequestFrom(ctx context.Context) *http.Request { r, _ := ctx.Value(requestKey{}).(*http.Request) return r }