【问题标题】::body-params vs :form-params in compojure-api:body-params 与 compojure-api 中的 :form-params
【发布时间】:2015-10-24 08:33:59
【问题描述】:

在使用 compojure-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,应该使用哪一个?

【问题讨论】:

    标签: clojure swagger plumatic-schema compojure-api


    【解决方案1】:

    它与支持的内容类型有关:

    • form-params 旨在与内容类型“application/x-www-form-urlencoded”(一种表单)一起使用
    • body-params 旨在用于也将位于具有其他内容类型(edn、json、transit 等)的正文中的参数。

    您需要使用 :body-params 从您的 clojurescript 或移动应用程序中使用它。

    使用form-paramsbody-params 将影响参数的验证方式、从请求的哪个部分获取参数以及如果使用swagger 扩展将如何生成swagger.json 文件。

    compojure-api 中的很多东西如果不映射到 swagger 中的概念就很难理解。 Looking into the code 我们可以在 the swagger parameter specs 中找到像“consumes”或“formData”这样的招摇术语。

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 2013-02-25
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多