实际上,使用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-params
或body-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/