Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用RESTAPI使用angularjs删除集合?_Javascript_Java_Angularjs_Rest_Batch File - Fatal编程技术网

Javascript 如何使用RESTAPI使用angularjs删除集合?

Javascript 如何使用RESTAPI使用angularjs删除集合?,javascript,java,angularjs,rest,batch-file,Javascript,Java,Angularjs,Rest,Batch File,我有一个案例,用户可以通过复选框选择要删除的特定实体。当用户选择特定实体时,其id将添加到特定数组中。例如,如果我选择第一、第二和第四个实体,它们的id将是: [0,1,3] 在前端服务中,我使用以下方法: deleteEntities: function(batchIds){ return $http.delete('/finance/entities', {params: [batchIds collection here??]}).success(function(data){

我有一个案例,用户可以通过复选框选择要删除的特定实体。当用户选择特定实体时,其id将添加到特定数组中。例如,如果我选择第一、第二和第四个实体,它们的id将是:

[0,1,3]

在前端服务中,我使用以下方法:

deleteEntities: function(batchIds){
    return $http.delete('/finance/entities', {params: [batchIds collection here??]}).success(function(data){
        return data;
    });
}
@Component
@Path("/entities")
@Produces("application/json")
public class FinanceEntityServiceImpl implements FinanceEntityService {
    @DELETE
    public void massDeleteEntitiesByIds(String batchIds){
        System.out.println("batch ids: " + batchIds);
        List<Long> idList = GsonProcessing.deserializeIdsList(batchIds);
        financeDao.massDelete(idList);
    }
}
我会将这些数据传递到后端服务。它使用以下方法:

deleteEntities: function(batchIds){
    return $http.delete('/finance/entities', {params: [batchIds collection here??]}).success(function(data){
        return data;
    });
}
@Component
@Path("/entities")
@Produces("application/json")
public class FinanceEntityServiceImpl implements FinanceEntityService {
    @DELETE
    public void massDeleteEntitiesByIds(String batchIds){
        System.out.println("batch ids: " + batchIds);
        List<Long> idList = GsonProcessing.deserializeIdsList(batchIds);
        financeDao.massDelete(idList);
    }
}
@组件
@路径(“/实体”)
@生成(“应用程序/json”)
公共类FinanceEntityServiceImpl实现FinanceEntityService{
@删除
公共void MassDeleteEntitysById(字符串batchId){
System.out.println(“批次ID:+batchID”);
List idList=GsonProcessing.deserializeIdsList(batchIds);
financeDao.massDelete(idList);
}
}
当我运行上述代码时

我一直在网上安静地搜索如何使用angularjs$http删除集合资源,但还没有找到

我也不确定是否能够将fresh collection作为参数放入
$http.delete
,其中显示[batchIds collection here??]

到目前为止,关于删除集合,我所知道的是url的形式应该是
”/myURL/batch?id=1&id=2&id=3'
,如果我错了,请纠正我。这里的问题是,如果我想删除一批20个id,将所有id放在同一个url中没有任何意义


所以我的问题是什么是最好的方法,以及如何使用angularjs$http.delete删除集合资源?

首先,使用RESTAPI发送ID列表是一种很好的删除方法

其次,您不应该在url中传递ID(出于安全原因),更好的方法是在包含您想要发送的数据的请求体中发送json(PUT和POST也是如此)


第三,如果您的代码总是发送json(可以通过创建以相同方式向api发送http请求的服务来强制),那么后端的方法应该接收json而不是字符串,并且请求的解析(反序列化)不应该在方法上发生。

首先,发送ID列表是使用RESTAPI删除的好方法

其次,您不应该在url中传递ID(出于安全原因),更好的方法是在包含您想要发送的数据的请求体中发送json(PUT和POST也是如此)


第三,如果您的代码总是发送json(可以通过创建以相同方式向api发送http请求的服务来强制),那么后端的方法应该接收json,而不是字符串。请求的解析(反序列化)也不应该发生在方法上。

好的,答案比我想象的简单得多。我所要做的就是用数据更改参数:

{params: [batchIds collection here??]} 
进入这个

{data: batchIds}

现在,只要在后端反序列化数据,就可以删除一批ID或任何需要的内容。

好的,答案比我想象的简单得多。我所要做的就是用数据更改参数:

{params: [batchIds collection here??]} 
进入这个

{data: batchIds}

现在,只要在后端对数据进行反序列化,就可以删除批量ID或任何需要的内容。

这对您有帮助吗?你将不得不用delete替换get。你可以看看我的帖子,我想它可能会帮助你:这对你有帮助吗?你将不得不用delete替换get。你可以看看我的帖子,我想它可能会对你有所帮助:谢谢Oren。我所做的是,当我使用JSON作为字符串时,我将在后端使用Gson对其进行反序列化。我已经做了具体的方法来反序列化它。我将尝试在请求体中添加json,并相应地添加注释。如果是https,那么在url中发送ID就不存在安全问题。REST使用动词(删除表示删除)。如果要在正文中发送数据,则不能使用delete动词。那么这就不会是平静的。您如何决定使用删除动词,以及何时在正文中使用带有ID的post/put动词?谢谢Oren。我所做的是,当我使用JSON作为字符串时,我将在后端使用Gson对其进行反序列化。我已经做了具体的方法来反序列化它。我将尝试在请求体中添加json,并相应地添加注释。如果是https,那么在url中发送ID就不存在安全问题。REST使用动词(删除表示删除)。如果要在正文中发送数据,则不能使用delete动词。那么这就不会是平静的。您如何决定使用删除动词,以及何时在正文中使用带有ID的post/put动词?