在使用compojore - 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应用程序和/或原生移动应用程序使用的API,应该使用哪一个?
这与支持的内容类型有关:
-
form-params
旨在与内容类型"application/x-www-form-urlencoded"(表单)一起使用 -
body-params
旨在用于也将与其他内容类型(edn, json, transit等)一起位于主体中的参数。
您将希望使用:body-params
从您的clojurescript或移动应用程序中消费它。
使用form-params
或body-params
将影响参数的验证方式,从请求的哪一部分获取参数,以及如何进行swagger。如果您使用swagger扩展名,将生成一个Json文件。