【发布时间】:2017-03-08 14:03:14
【问题描述】:
我目前正在使用带有 +swagger 选项的 Luminus 模板,它添加了对 compojure-api 的支持。
我目前的设置是这样的(仅相关位):
(ns my-project.routes.services
(:require [compojure.api.sweet :refer :all]
,,,)
(defapi service-routes
(POST "/login" req
:return Result
:body [user UserLogin]
:summary "Log the user in"
(auth/login! req user))
(defapi restricted-service-routes
(POST "/login2" req
:return Result
:body [user UserLogin]
:summary "Log the user in"
(auth/login! req user)))
和
(ns my-project.handler)
(:require [my-project.routes.services :refer :all])
(defroutes app-routes
#'service-routes
#'restricted-service-routes)
服务器收到请求后,将其传递给app-routes。
然后我使用 Swagger UI 测试这些路由,"/login" 路由工作
美好的。但是,完全相似的"/login2" 返回
{
"errors": "(not (map? nil))"
}
当我切换两个服务组的顺序时,结果如预期:第一个路由正常,而第二个则收不到body。
这是 Compojure-api 本身的错误吗?我能做些什么来解决这个问题吗?
【问题讨论】:
标签: clojure compojure luminus compojure-api