                                                    non-route-params)]
                                            (~verb-fn-sym ~@arglist)))]
                           ((~apply-middleware ~middleware ~sync? handler#)
-                           (assoc ~req
-                             :route-params route-params#)))]))
+                           (-> ~req
+                             (assoc :route-params route-params#)
+                             ~@(if schema
+                                 [`(assoc-in [:rook :metadata :schema]
+                                     ~schema)]))))]))
                   dt)
               :else nil))))))
 

             (if (contains? route-params param)
               `(get (:route-params ~request-sym) ~(keyword param))
               `(internals/extract-argument-value
                  (keyword (quote ~param))
                  ~request-sym
                  (-> ~request-sym :rook :arg-resolvers)))])
    arglist))

                                                (-> handler#
                                                  ~add-resolvers
                                                  ~middleware))
                                             middleware)
                          schema           (:schema metadata)]
                      [[method pathvec]
                       `(let [route-params# ~(zipmap
                                               (map keyword route-params)
