在compojore - API中,我注意到有两种指定资源API的方法:
(POST* "/register" []
:body [user UserRegistration]
(ok)))
和
(POST* "/register" []
:body-params [username :- String,
password :- String]
(ok)))
这两者的区别是什么?使用其中一个和另一个的含义是什么?
唯一的区别在于参数的指定方式(以及之后的解构方式):
body
:
将body-params读入增强的
let
。第一个参数是let
符号,第二个是对coerced!
的Schema。的例子:
:body [user User]
body-params
:
用管道
letk
符号重新构造body-params。示例:
:body-params [id :- Long name :- String]
根据具体情况,您可能更喜欢其中一种。在这两种情况下,参数(第一种情况是user
,第二种情况是id
和name
)将在body的作用域内。