我在java上工作,我有4个rest Apis,路径分别为"/deleteplanA","/deleteplanB","/deleteplanC","/deleteall“。例如,删除计划A的接口为:
@POST
@Path("/deleteplanA")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response deletePlanA(@FormParam("user_id")String userId) {
Response response;
if(Verify(userId)) {
Enter code here
} else {
Enter code here
}
return response;
}在这里,verify是一个返回布尔值的函数,根据该值可以删除或不删除计划。
现在的问题是,因为"/deleteall“接口调用函数deletePlanA、deletePlanB和deletePlanC,所以函数Verify(String)将被执行3次。有没有办法防止这种情况发生?
我尝试在这3个函数中添加一个布尔参数,但那些似乎不起作用,因为js代码只使用一个参数调用api。(我不想传递来自js的验证值,因为我觉得它很容易被用户操纵)
发布于 2016-09-19 05:34:29
您应该在不使用Verify步骤的情况下将Enter code here分解为单独的方法。然后在每个delete方法中进行验证,然后调用不包含Verify步骤的方法
public Response deleteAll(@FormParam("user_id")String userId) {
if (Verify(userId)) {
deletePlanAHelper(...);
deletePlanBHelper(...);
deletePlanCHelper(...);
} else {
...
}
}
public Response deletePlanA(@FormParam("user_id")String userId) {
if (Verify(userId)) {
deletePlanAHelper(...);
} else {
...
}
}
private ReturnType deletePlanAHelper(Parameters...) {
Enter code here
}https://stackoverflow.com/questions/39562842
复制相似问题