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가 종종 헷갈리는 경우가 있다.
- Representational state transfer/RESTful web services
- Build a RESTful Web service using Jersey and Apache Tomcat
plural.../resources/items |
singular.../resources/items/1234 |
|
---|---|---|
GET <R> |
모든 Item들을 반환한다.
|
1234에 해당하는 Item 1개를 반환한다.
|
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개를 제거한다. |