2017-05-13 8 views
-1

私が知っている限り、putは冪等元です。つまり、このメソッドを複数回適用することは、それを1回適用するのと同じです。以下のコードを考えてみてください:Asp Net Web Apiでputメソッドが常に冪等ではないのはなぜですか?

public class ValuesController : ApiController 
{ 
    private static List<string> _list = new List<string>(); 

    public void Put([FromBody]string value) 
    { 
     _list.Add(value); 
    } 

} 

明らかにあなたが方法がここに冪等であり、かつ複数回_listた複数の値になります、それを適用していないに言えば、この例から見ることができるように。また、同様の方法でgetやdeleteなどの他の冪等のメソッドを実装することもできます。どのようにしてメソッドを置くのは常にidempotentですか?

+1

であるはずですが、それはHTTP/RESTfulのセマンティクスに過ぎません。あなたが冪等ではない実装を書くと、そうではありません。同様に、あなたの書き込みを止めることはありません。あなたがそれをしたいのであれば、実際にデータを削除するGET。 – jonrsharpe

+1

プログラマは、それらが等冪であることを確認する責任があります。 IDEが非常にスマートだった場合、コードを独自に書くことができ、私たちはすべて失業者になります:) – sashoalm

答えて

1

PUTは偶数である必要があります。 PUTの実装が冪等でない場合は、HTTP仕様に違反しています。

ただし、これは、準拠していない実装を記述できないことを意味するものではありません。

技術的にこれはもはやHTTP

関連する問題