2016-12-07 4 views
1

HTTP応答でSpring HateoasとHAL標準を共同して作業しています。私は何も返さないコントローラにHTTP DELETEメソッドを持っています(void)。また、同じエンティティに対する応答では、リソースを削除するためのリンクを提供したいと考えています。私は、次のコードで実行しようとしましたが、それは誤りString Hateoasのvoidメソッドへのリンク

は方法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-を1つの答えは受け入れられていないし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メソッドを使用する必要があります。

これは、ドキュメントを削除する方法であることを暗示しているため、基本的に削除方法へのリンクを作成する必要はありません。

関連する問題