RESTful API - 相关记录的验证

时间:2014-07-15 08:18:38

标签: validation rest

我实现了RESTful API服务,我对保存相关记录有疑问。

例如,我有users表和相关的user_emails表。用户电子邮件应该是唯一的。

在客户端,我有一个包含用户数据字段和多个user_email字段的表单(用户可以单独添加任意数量的字段)。当用户保存表单时,我必须首先进行查询以在users表中创建记录以获取她的ID,然后我才能进行查询以保存用户的电子邮件(因为现在我有记录的ID来了保存用户数据后的响应)。但如果用户在任何字段中输入的不是唯一的电子邮件,则请求将失败。所以我在users表中创建了一条记录,但没有在user_emails表中创建记录。

在保存之前,有哪些方法可以实现所有这些数据的验证?

2 个答案:

答案 0 :(得分:0)

这与后端的restful api和事务处理无关。如果您使用的是Java,那么使用JPA可以在同一个事务中保留这两个元素,然后您可以注意到是否存在问题并回滚整个事务返回响应。

答案 1 :(得分:-1)

如果可以的话,我会将其压缩为单个请求。只是出于表现的目的,如果没有别的。使用user_email作为密钥,让请求返回某种状态结果:如果user_email是唯一的,它将以成功消息响应。否则,它表示失败。

除非您需要,否则最好只在服务器端执行该检查,而不是使用ID值。它可以提供更好的性能,并且它可以让您以后更轻松地更改实现。

至于您使用的实际代码,因为我不是百分之百的实际问题,如果您使用的是SQL Server,则可以使用MERGE。这样可以更轻松地导入用户的电子邮件,让数据库担心重复。