compojure-api中身体和身体参数之间有什么区别?

时间:2015-08-01 22:36:57

标签: clojure swagger plumatic-schema compojure-api

在compojure-api中,我注意到这两种指定资源API的方法:

(POST* "/register" []
    :body [user UserRegistration]
    (ok)))

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

这两者有什么区别?使用一个与另一个有什么含义?

1 个答案:

答案 0 :(得分:5)

唯一的区别在于如何指定参数(以及之后的结构):

body

  

将body-params读入增强型let。第一个参数是let   符号,第二个是coerced!反对的模式。

     

实施例:   :body [user User]

body-params

  

使用管道letk表示法重构body-params。

     

示例::body-params [id :- Long name :- String]

根据具体情况,您可能更喜欢其中一种。在这两种情况下,params(第一种情况下为user,第二种情况中为idname)将在身体范围内。