如何在 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
}
我发现在 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
}