尝试为以下请求编写请求处理程序:
POST - > params
处理程序应使用filter: {
content_type: "thumbnail",
fields.thumbnailType.fields.type[match]: "News & Press",
fields.thumbnailType.sys.contentType.sys.id: "thumbnailType"
}
为该属性创建一个新问题。
我已经注册了这样的路线:
/properties/{:propertyId}/issues
如何编写处理程序以从请求参数中获取propertyId
,而不是在JSON正文中要求它?
router.post(Issue.self, at: "properties", Int.parameter, "issues", use: createIssueHandler)
答案 0 :(得分:0)
从Vapor的Discord聊天中获得@AxelCB
如果Property符合Parameter,你可以这样做:
router.post(Issue.self, at: "properties", Property.parameter, "issues", use: createIssueHandler)
func createIssueHandler(_ req: Request, data: Issue) throws -> Future<Issue> {
try req.parameters.next(Property.self).flatMap(to: Issue.self) { property -> Future<Issue> in
data.propertyId = property.id
return issue.save(on: req)
}
}
如果您在parameters.next
中发送的内容是模型,并且下一个参数与该模型的ID类型相同,则会尝试使用该ID查找您的模型,如果找不到它