实际上,使用compojure-api创建API时,使用:body-params和:form-params有什么区别?例如:

(POST* "/register" []
    :body-params [username :- String,
                  password :- String]
    (ok)))


(POST* "/register" []
    :form-params [username :- String,
                  password :- String]
    (ok)))

单页clojurescript应用程序和/或 native 移动应用程序将使用的API应该使用哪一个?

最佳答案

它与受支持的内容类型有关:

  • form-params旨在与内容类型“application/x-www-form-urlencoded”(一种形式)一起使用
  • body-params旨在用于也将与其他内容类型(edn,json,transit等)一起位于正文中的参数。

  • 您需要使用:body-params从clojurescript或移动应用程序中使用它。

    使用form-paramsbody-params将影响如何验证参数,从请求的哪一部分获取参数以及如果使用swagger扩展名将如何生成swagger.json文件。

    如果不将compojure-api中的许多内容映射到 Swagger 的概念,将很难理解它们。 Looking into the code我们可以在the swagger parameter specs中找到诸如“consumes”或“formData”之类的张扬术语。

    关于clojure - :body-params vs :form-params in compojure-api,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31766908/

    10-16 06:14