我在控制器层之前有请求层来验证规则并从输入中获取正确的数据但是在哪里找到检查权限的正确位置?
例如,如果用户想要使用API更新其配置文件
使用PUT方法import pdb
print("program started")
c=100
d=200
pdb.set_trace()
def fun(a,b):
print a,b
return a+b
fun(c,d)
for i in [1,2,3,4,5]:
print 10/i
print ("other statements in program")
print ("program ended")
我想用user_id参数检查登录用户ID,如果我把它放在请求层我应该在请求层中使用Model在编程结构方面是否正确?如果没有,它的位置在哪里更好?
答案 0 :(得分:1)
如果您将这种逻辑放在您的请求中,这将明显违反SRP。请求抽象层负责读取输入数据并以清晰的形式将它们序列化。
控制器有责任根据用户的输入改变模型层的状态,有时改变相关的视图层。因此控制器无法验证用户的输入。
因此,您的验证将存在于Model层。这个层负责域逻辑,并且是进行所有相关验证的地方。
我建议你阅读两篇this文章。另请尝试更多SOLID并开始实施dependency injection
等概念