首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >api将作为具有更多参数的函数使用

api将作为具有更多参数的函数使用
EN

Stack Overflow用户
提问于 2016-09-19 05:27:36
回答 1查看 13关注 0票数 0

我在java上工作,我有4个rest Apis,路径分别为"/deleteplanA","/deleteplanB","/deleteplanC","/deleteall“。例如,删除计划A的接口为:

代码语言:javascript
复制
@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的验证值,因为我觉得它很容易被用户操纵)

EN

回答 1

Stack Overflow用户

发布于 2016-09-19 05:34:29

您应该在不使用Verify步骤的情况下将Enter code here分解为单独的方法。然后在每个delete方法中进行验证,然后调用不包含Verify步骤的方法

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39562842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档