compojure-api 中的 body 和 body-params 有啥区别?
Posted
技术标签:
【中文标题】compojure-api 中的 body 和 body-params 有啥区别?【英文标题】:What is the difference between body and body-params in compojure-api?compojure-api 中的 body 和 body-params 有什么区别? 【发布时间】:2015-10-24 08:31:00 【问题描述】:在 compojure-api 中,我注意到这两种指定资源 API 的方式:
(POST* "/register" []
:body [user UserRegistration]
(ok)))
和
(POST* "/register" []
:body-params [username :- String,
password :- String]
(ok)))
这两者有什么区别?使用一个与另一个有什么影响?
【问题讨论】:
【参考方案1】:唯一的区别在于参数的指定方式(以及之后的解构方式):
body
:
将正文参数读入增强的
let
。第一个参数是let
符号,第二个是coerced!
反对的 Schema。示例:
:body [user User]
body-params
:
使用管道
letk
表示法重组 body-params。示例:
:body-params [id :- Long name :- String]
根据情况,您可能更喜欢其中一种。在这两种情况下,参数(user
在第一种情况下,id
和 name
在第二种情况下)都将在正文的范围内。
【讨论】:
以上是关于compojure-api 中的 body 和 body-params 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 CORS 添加到 compojure-api 应用程序?
Postman-----将 A 请求中 response Body 中的参数值传入到下一个请求 B 的 request body 中作为参数发送请求