如何在 Vapor 中处理 PUT HTTP 请求?

How to handle PUT HTTP request in Vapor?

我发现在 Vapor 中更新记录的唯一方法是:

drop.get("update") { request in

  guard var first = try Acronym.query().first(),
    let long = request.data["long"]?.string else {
    throw Abort.badRequest
  }
  first.long = long
  try first.save()
  return first

}

但是,这并不是一种非常 RESTful 的方式,因为它是执行带有参数的 GET 请求而不是 PUT 请求。

如何在 Vapor 中执行 PUT 请求?

事实证明,执行 PUT 以及其他 HTTP 方法就像将 .get().post() 更改为 .put() 或任何其他 HTTP 方法一样简单。

至于我的问题,要在 Vapor 中创建一个 PUT 函数,只需添加一个 .put 方法,该方法接受 Int(或字符串,或您喜欢的任何数据类型),并接受 JSON(或您喜欢的任何格式),然后像 POST 请求一样简单地更新。

drop.put("update") { request in
  guard var first = try Acronym.query().first(),
    let long = request.data["long"]?.string else {
    throw Abort.badRequest
  }

  first.long = long
  try first.save()

  return first
}