Tagged: rest

RESTful HTTP DELETE?


DELETE method 의 응답으로 어떤 값을 사용해야 할까? 하고 갑자기 궁금하던 중, 같은 논점에 대해, 상당양의 검색결과를 얻었다.

일단 idempotence 에 대한 내용은 RFC 2616 / 9.1.2 Idempotent Methods 에서 알아볼 수 있다.

RFC 의 내용은 그리 논란거리가 아니지만 이게 REST(ful) 동네로 넘어오면서 의견이 분분해지는 것 같다.

debate

논점을 좀 간단하게 하자면, 204 만 써야 하는가 아니면 404/410 등도 같이 써야 한다는 것인데…

개인적으로 204 를 사용하는 것이 옳다고 본다. 4xx 을 써도 된다는 의견들이 잘못됐다는 것은 아니지만 4xx 을 사용해야 한는 경우는 그것보다 더 넓은 의미와 상황을 포함한다.

CRUD for RESTful Web Services


Jersey를 사용하지 않고 그냥 만들어야 할 경우 CRUD에 관계된 Resource URI와 HTTP Method가 종종 헷갈리는 경우가 있다.

plural
.../resources/items
singular
.../resources/items/1234
GET
<R>
모든 Item들을 반환한다.


<items>
  <item id="1233">...</item>
  <item id="1234">...</item>
</items>


1234에 해당하는 Item 1개를 반환한다.


<item id="1234">
  ...
</item>


PUT
<U>
모든 Item들을 교체한다. 1234에 해당하는 Item 1개의 내용을 갱신한다. 없으면 새로 만드는 게 아니라 Not Found(404)이다.
POST
<C>
새로운 Item을 생성한다. 이 때 사로이 생성된 Item의 uri를 CREATED(201)로 리턴한다. 1234에 해당하는 리소스를 plural resource으로 보고 그 안에 새로운 singular resource를 생성한다.
DELETE
<D>
다 날린다. 1234에 해당하는 Item 1개를 제거한다.