簡體   English   中英

如何使用REST API使用angularjs刪除集合?

[英]How to delete collection with angularjs using REST api?

我有一種情況,用戶可以選擇要刪除的復選框的特定實體。 當用戶選擇特定實體時,其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);
    }
}

當我運行以上代碼時

我一直在網上安靜地搜索有關如何使用angularjs $ http刪除集合資源的信息,但尚未找到。

我也不確定我是否能夠將新集合作為$http.delete參數顯示在[batchIds collection here]。

我到目前為止對刪除集合的了解是,URL應該采用'/myURL/batch?id=1&id=2&id=3' ,如果我錯了,請糾正我。 這里的問題是,如果我想刪除一批20個id,將所有id放在相同的url中沒有任何意義。

所以我的問題是什么是最好的方法,以及如何使用angularjs $ http.delete刪除集合資源?

首先,發送ID列表是使用rest api刪除的好方法

其次,您不應該在url中傳遞id(出於安全原因),更好的方法是在請求正文中發送包含您想發送的數據的json(PUT和POST也是如此)

第三,如果您的代碼始終發送json(可以通過創建將HTTP請求發送到api的服務來強制執行),則后端的方法應接收json而不是字符串,請求的解析(反序列化)也不應發生在方法上。

好的,答案比我想的要簡單得多。 我要做的就是用數據更改參數:

{params: [batchIds collection here??]} 

進入這個

{data: batchIds}

現在,只要您在后端對數據進行反序列化,就可以刪除一批ID或任何您想要的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM