現在、Luminusテンプレートに+ swaggerオプションを使用しています。これにはcompojure-apiサポートが追加されています。これ(のみ関連ビット)のようなCompojure-apiは、APIルートの最初のグループの後でbody-paramを削除します
私の現在の設定がされています
(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"
のルートは であった。私は2つのサービスグループの順序を切り替えると期待どおりしかし、全く同様"/login2"
戻り
{
"errors": "(not (map? nil))"
}
、結果は:第二にbody
を受信しないであろうしつつ、第1の経路は、正常に動作します。
これはCompojure-api自体のバグですか?そして、私はこれを回避するためにできることは何ですか?