在compojure-api中,我注意到这两种指定资源API的方法:
(POST* "/register" []
:body [user UserRegistration]
(ok)))
和
(POST* "/register" []
:body-params [username :- String,
password :- String]
(ok)))
这两者有什么区别?使用一个与另一个有什么含义?
答案 0 :(得分:5)
唯一的区别在于如何指定参数(以及之后的结构):
body
:
将body-params读入增强型
let
。第一个参数是let
符号,第二个是coerced!
反对的模式。实施例:
:body [user User]
使用管道
letk
表示法重构body-params。示例:
:body-params [id :- Long name :- String]
根据具体情况,您可能更喜欢其中一种。在这两种情况下,params(第一种情况下为user
,第二种情况中为id
和name
)将在身体范围内。