2017-08-02 9 views
0

RESTによるとput、deleteなどは冪等であり、リソースに対して繰り返し実行される操作は同じ応答を返す。これは何らかの形で自動的に行われますか(ブラウザなどでキャッシュするか)、プログラマーによって(メソッド内で)行われるか保証されますか? この冪等詞は象徴的なものですか?Jersey/JAX-RS put、idempotencyを削除する - プログラマによって提供されるか提供される

例えば、私の方法で削除要求を処理するために -

@DELETE 
@Produces({MediaType.TEXT_HTML}) 
public Response deleteEmployee() { 
     String response = DAOaccess.deleteEmployee(name); 
     return Response.noContent().build(); 
} 

私は、このメソッド内何かを行うことができます。だから、私はここでidempotencyを保証する必要がありますか?そのようなコードを書いてください(idなどをチェックしてください)?

誰かが私にputとpostの違いを尋ねると、JAX-RSからではなくHTTPの観点から質問していますか(JAX-RSには機能的な違いがないかもしれないので)?

答えて

1

はい、開発者は、ここでの冪等性を保証する責任があります。 はPUTとDELETEをにする必要がありますが、その意味では解釈の余地は十分にあります。 JAX-RSは開発者がRESTのベストプラクティスに従っていることを確認するために比較的少ししか行いませんし、要求を短絡させるフィルタがなければ、すべての要求を適切なエンドポイントにルーティングします。

2番目の削除呼び出しは204または404を返しますか?どちらの応答でも、同じメソッドを繰り返し呼び出すと、同じ状態になります。 1つは削除するリソースがないことをクライアントに通知し、もう1つはこの時点でそのようなリソースがまったく存在しないことをクライアントに通知します。

のみ間違っ実装(RESTの標準に従って)を繰り返し呼び出しでのリソースのトグル削除状態へのシステムのためになる - これはどのような影響を与えるその次の呼び出しを希望するなど不明な点がクライアントを残すだろうシステム上にある。

関連する問題