api用作具有更多参数的函数

时间:2016-09-18 21:27:36

标签: java rest post

我正在研究java,我有4个休息的Apis,路径" / deleteplanA"," / deleteplanB"," / deleteplanC",&#34 ; / deleteall&#34 ;. 例如,删除计划A的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;
}

这里verify是一个返回布尔值的函数,根据该布尔值删除或不删除计划。

现在的问题是,因为" / deleteall" API调用函数deletePlanA,deletePlanB和deletePlanC,函数Verify(String)将执行3次。有办法防止这种情况吗?

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

1 个答案:

答案 0 :(得分: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
}