私は現在、compojure-api サポートを追加する +swagger オプションを指定してLuminusテンプレートを使用しています。
私の現在のセットアップはそうです(関連するビットのみ):
(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))"
}
2 つのサービス グループの順序を入れ替えると、結果は期待どおりです。最初のルートは正常に機能しますが、2 番目のルートはbody
.
これは Compojure-api 自体のバグですか? そして、これを回避するために私にできることはありますか?