我目前正在使用带有 +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 本身的错误吗?我能做些什么来解决这个问题吗?