我正在创建一个REST Web服务,以便URL如下所示: /用户/ {用户id} /影像/ {图像标识}
在做其他事情之前,我必须做以下验证: 1.验证userId的格式是否正确。例如:整数而不是字符串等 2.验证imageId的格式是否正确。例如:整数而不是字符串等 3.验证数据库中是否存在userId。 4.验证数据库中是否存在imageId。
我有两个类(在服务器端)。一个类是“Resource”类,该类从客户端应用程序获取第一个调用(控制)。然后这个类将输入发送到“服务”类。服务类负责业务逻辑。
现在哪个班级应该执行上面提到的四个验证?
选项1:执行验证:'资源'类中的'验证1'(上面)和'验证2',并在“服务”类中执行'验证3'和'验证4'。
选项2:在“服务”类中执行所有验证。
哪种选项是验证输入的最佳方法。请告诉我哪个选项更好。
答案 0 :(得分:1)
验证的目的是减少使用无效数据调用的功能。 因此选项1会更好。如果Userid和图像格式不正确,则不要调用其他功能。
答案 1 :(得分:0)
我不同意答案。验证应在Service类中进行。休息层就是您的服务层中的一个这样的客户端。您可以将服务层接口公开为Java API,另一个使用消息传递层的客户端(如Rabbit Mq等)公开。验证结果应适用于所有情况。另一个重要原因
您的其余代码需要将错误/异常映射到HTTP代码。您的服务层应该完全不知道HTTP协议