archimag / restas

Common Lisp web framework
http://restas.lisper.ru/
Other
257 stars 50 forks source link

RESTAS:DEFINE-ROUTE no longer takes :PARSE-VARS #18

Open phmarek opened 11 years ago

phmarek commented 11 years ago

What's the new way to do that now? Thanks for any help.

Regards, Ph.

archimag commented 11 years ago

Using :sift-variables declaration instead.

Samples:

(restas:define-route topic ("thread/:topic-id")
  (:sift-variables (topic-id #'parser-integer))
  ...)

or

(restas:define-route myroute (":val1/:val2")
  (:sift-variables
   (val1 'integer :min-value 1 :max-value 100)
   (val2 'data-sfit:email :message "Doesn't look like a valid email."))
  ..)

See https://github.com/archimag/data-sift/blob/master/src/sift.lisp for detail. The current documentation is outdated.

fehmud commented 10 years ago

Thanks, but I can't make it work.

(define-route hello ("")
                (format nil "Hello ~a, aged ~a!" "Liz" 40))

works, whilst:

(define-route hello (":name/:age")
               (:sift-variables (name 'string) (age 'integer))
               (format nil "Hello ~a, aged ~a!" name age))

does not work. I have tried "(restas:debug-mode-on)", but no messages are printed..

Any suggestion? I am using the latest RESTAS and DATA-SIFT, as downloaded by Quicklisp.

Thanks for your attention.