【发布时间】:2015-01-08 01:54:35
【问题描述】:
我正在和朋友一起做一个项目,我们想在用户进入我的下一轮彩票游戏时向他们发送一封电子邮件。我想向社区征求一些关于什么是特定场景的好路线名称和层次结构的建议。
我有一个数据库和一个 API。在我的数据库中,我有一个包含用户的表。此用户表上有一个名为 IsProcessedForLottery 的标志。每天晚上我都会将我的用户发送到我朋友的数据库表(仅限 IsProcessedForLottery = false 的用户)。他的 cron 工作将运行对数据执行计算的代码(在他这边),然后他的想法是让他调用我的 REST API 来告诉我谁中了彩票。这个调用应该做 3 件事:
- 更新我表中的获胜用户以设置 IsProcessedForLottery = true
- 通过表格中的电子邮件地址向该特定用户发送电子邮件
- 在“LotteryWinners”表中插入新行
假设我不能自己运行计算,他不能发送电子邮件,更重要的是,我不能调用他的 API 来询问特定用户是否是赢家与否。数据要发给他,过段时间他要把获胜者发回给我。
总而言之,我将数据发送给他,他的算法运行,然后他调用我的 API 告诉我谁赢了。然后我通过电子邮件告诉用户他们赢了,更新用户,并在表格中插入一条记录。
有哪些途径可以实现这一目标?路由是否必须映射回用户或类?例如
HTTP POST /users/1/lottery
这是否意味着用户 1 中了彩票?即使用户下面没有彩票收藏?在我的应用程序中,彩票甚至不是一门课程。没有 /users/1/lottery/1 等概念。所有路由都必须映射回类吗?在此操作中,我可以一次性完成上述所有 3 件事(电子邮件、更新用户和在 LotteryWinners 表中添加行)。
或者说需要进行两次调用的 REST 方法:
1. HTTP PUT /users/1
将 IsProcessedForLottery 值设置为 true 进行更新。这里唯一的问题是我需要传递表示为 JSON 的整个用户对象,这对于我需要更新的一个字段来说似乎有点过分了。随后是另一个呼叫
2. HTTP POST /lottery/
在用户 ID 为 1 的彩票中奖者中插入新行,然后发送电子邮件(我可以传递一些包含用户 ID 或用户对象的 JSON)
有什么想法吗?
非常感谢大家,感谢您花时间阅读本文:)
【问题讨论】:
标签: rest asp.net-web-api2