2017-05-13 2 views
-1

내가 아는 한 멱등수입니다. 즉,이 방법을 여러 번 적용하는 것은 한 번 적용하는 것과 같습니다. 다음 코드 조각을 고려하십시오 :왜 메서드를 항상 Asp Net Web Api에서 멱등수가 아닌가?

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

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

} 

를 분명히이 예에서 볼 수 있듯이, 넣어 방법은 여기 멱등 되 고 여러 번 적용하는 _list 여러 값을 갖는 발생합니다되지 않습니다. 또한 비슷한 방식으로 가져 오기 또는 삭제와 같은 다른 멱등환 메소드를 구현할 수 있습니다. 왜 방법을 넣어 항상 멱등수입니까?

+1

멱등수 여야합니다. 다만 HTTP/RESTful 의미론입니다. 멱등수가 아닌 구현을 작성하면 (자), 멱등수가 아닙니다. 마찬가지로 글쓰기를 멈출 수있는 방법이 없습니다. 실제로 데이터를 삭제하는 GET을 원한다면 그렇게해야합니다. – jonrsharpe

+1

멱등수인지 확인하는 것은 프로그래머의 책임입니다. IDE가 매우 똑똑하다면 코드 자체를 작성할 수 있으며 모두 실업 상태가됩니다 :) – sashoalm

답변

1

PUT은 멱등구 여야합니다. PUT의 구현이 멱등수가 아닌 경우 HTTP 사양을 위반합니다.

그러나 그렇다고해서 규격을 준수하지 않는 구현을 작성할 수 없다는 의미는 아닙니다.

기술적으로 이것은 더 이상 HTTP가 아닙니다.

관련 문제