【发布时间】:2016-01-28 20:55:11
【问题描述】:
用例:
- 让我们使用 POST HTTP 动词设计一个 RESTful 创建操作 - 创建票证,其中创建者(分配者)指定票证受让人
- 我们正在以下位置创建新的“票证”:
/companyId/userId/ticket -
我们正在提供包含
的票证正文assigneeId:{ “assigneeId”:10 }
我们需要验证
assigneeId属于 URL 中的公司 -companyId路径变量
到目前为止:
@RequestMapping(value="/{companyId}/{userId}/ticket", method=POST)
public void createTicket(@Valid @RequestBody Ticket newTicket, @PathVariable Long companyId, @PathVariable Long userId) {
...
}
- 我们可以轻松指定自定义验证器 (
TicketValidator)(即使有依赖项)并验证Ticket实例 - 我们不能轻松地将
companyId传递给这个验证器!我们需要验证ticket.assigneeId属于companyId的公司。
期望的输出:
- 能够在自定义验证器中访问路径变量
任何想法如何在这里实现所需的输出?
【问题讨论】:
-
"我们需要在 URL 中验证 assigneeId 属于公司 - companyId 路径变量" => 所以
Ticket具有assigneeId属性,我们需要询问数据库是否assigneeId属于companyId的公司。所以我们需要Ticket和companyId。有意义吗? -
当然。我错过了。
-
别担心,我更新了原来的 Q(希望现在更清楚了)。
标签: java spring rest validation bean-validation