2016-09-18 112 views
0

我正在使用java,我有4个其余的apis,并带有路径“/ deleteplanA”,“/ deleteplanB”,“/ deleteplanC”,“/ deleteall”。 对于例如,要删除计划A中的API是:api被用作具有更多参数的函数

@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; 
} 

这里验证是返回基于布尔值在其上计划被删除或不删除的功能。

现在的问题是,由于“/ deleteall”API调用函数deletePlanA,deletePlanB和deletePlanC,函数Verify(String)将被执行3次。有没有办法阻止?

我试着在3个函数中添加一个布尔参数,但这些似乎并不奏效,因为js代码只用一个参数调用api。 (我不想从js传递验证值,因为我觉得它可以被用户轻松操纵)

回答

0

您应该将Enter code here分解为单独的方法,而不使用Verify步骤。然后在您验证的每种删除方法中,调用不包含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 
} 
相关问题