我想在Compojure中定义一个资源,如下所示:
(ANY "myres/:id" [id] (handler))
Run Code Online (Sandbox Code Playgroud)
我希望:id是可选的(取决于是否指定了ID,我的API将表现不同).
如果我尝试访问,这可以正常工作
http://mydomain/myres/12
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试访问
http://mydomain/myres
Run Code Online (Sandbox Code Playgroud)
没有指定ID,我得到404.
有没有办法让参数:id是可选的?
谢谢!
如何使用id创建2个不同的路由,而不使用另一个路由,并从两个路由调用处理程序,如下所示:
(defn handler
([] "Response without id")
([id] (str "Response with id - " id)))
(defroutes my-routes
(ANY "myres" [] (handler))
(ANY "myres/:id" [id] (handler id)))
Run Code Online (Sandbox Code Playgroud)