3

应用程序对模式使用 kabab-case 键格式,如下所示

(s/defschema User
  {:first-name                                 s/Str
   :last-name                                  s/Str})

但是对于招摇的文档,我想要camelCase中的模式,如下所示

(s/defschema User
  {:firstName                                 s/Str
   :lastName                                  s/Str})

有没有办法为 swagger 实现中间件,以便我可以将模式从 kabab-case 转换为 camelCase?请建议我怎样才能做到这一点。

我当前的代码如下所示,用于为 api 生成动态 swagger 文档

(api {:format   {:formats       [:transit-json :json]
                 :params-opts   {:transit-json {:handlers transit/transit-read-handlers}}
                 :response-opts {:transit-json {:handlers transit/transit-write-handlers}}}
          :coercion coercions/default-coercions
          :swagger  {:ui   "/swagger"
                     :spec "/swagger.json"
                     :data {:info {:title "API Docs"}
                            :securityDefinitions
                                      {:api_key
                                       {:type "apiKey"
                                        :name "Authorization"
                                        :in   "header"}}
                            :tags     [{:name "User" :description "/api/v1/user"}]
                            :consumes ["application/json"]
                            :produces ["application/json"]}
                      }
          :api      {:invalid-routes-fn (constantly nil)}}
         (create-api-routes web-server-config :middleware default-middleware))

我正在使用 compojure-api 提供的 swagger 进行路由。

我们可以使用reitit实现我的要求,还有一个示例项目rest-api 使用 reitit如何实现这一点。但是我想使用 compojure-api 实现类似的事情,因为我现在不想升级到新的路由库。

4

0 回答 0