2016-12-07 64 views
1

我正在與Spring Hateoas HALT標準在HTTP響應。我在我的控制器中有一個HTTP DELETE方法,它不返回任何東西(void)。在對同一實體的響應中,我想提供一個鏈接來刪除資源。我試着用下面的代碼做的,但它給錯誤字符串Hateoas鏈接到一個無效方法

無法解析方法linkTo(無效)

resource.add(linkTo(
      methodOn(DokumenteController.class) 
        .loeschenEinDokument(filenetDokumentZuordnung.getDokumentId())) 
          .withRel("download")); 

有什麼辦法,我可以添加一個鏈接到返回void的方法?

+0

見http://stackoverflow.com/questions/30574431/how-to-create-link-pointing-to- spring-controller-action-that-returns-void可以提供幫助,雖然單個答案尚未被接受也沒有upvoted ... – sp00m

回答

5

不返回void。改爲返回ResponseEntity<Void>

很可能,即使您不返回郵件正文,您也必須設置某些標頭。或者你想設置一個狀態碼。

如果您的控制器有一個適當的請求映射你也可以做到以下幾點:

resource.add(linkTo(DokumenteController.class) 
      .slash(filenetDokumentZuordnung.getDokumentId()) 
      .withRel("download")); 
2

我懷疑有可能鏈接到DELETE路線。

Hateoas允許您發現您的REST API,但是REST API意味着要刪除/document/42處可用的文檔,您應該調用相同的路由,但使用DELETE方法。

基本上,您不必創建鏈接到您的刪除方法,因爲這是隱含的,這是刪除文檔的方式。