[HTTP] PUT, DELETE 그리고 멱등성
https://lwz7.tistory.com/5 [HTTP] GET 방식과 POST 방식GET 방식과 POST 방식 GET 방식과 POST 방식은 웹에서 가장 많이 사용되는 HTTP 요청 메서드입니다. 이 두 메서드는 각각의 용도에 따라 클라이언트와
lwz7.tistory.com
최근 DRF를 공부하며 HTTP 메서드들을 자주 마주치고 있습니다. HTTP 관련 포스트를 작성하면서 저도 많은 공부가 되는 것 같습니다. 이번 포스팅에서는 지난 포스팅에 이어 REST API를 다룰 때 유용한 HTTP 메서드인 PATCH, OPTIONS에 대해 알아보겠습니다.
PATCH
PATCH는 데이터의 일부만 업데이트할 때 사용됩니다. 예를 들어 블로그 포스트의 제목만 수정하거나, 사용자 프로필에서 특정 정보만 업데이트할 때 PATCH를 사용할 수 있습니다.
PATCH의 멱등성
PATCH의 멱등성 여부는 요청에 따라 달라집니다. 만약 텍스트를 특정 값으로 바꾸는 요청을 계속해서 보내면 결과는 항상 같습니다. 하지만 가격이 10000원인 상품의 가격을 10% 인상하는 요청을 여러 번 보낸다고 가정한다면 요청할 때마다 가격이 계속해서 인상될 것입니다. 이런 경우 PATCH는 멱등성을 가지지 않습니다.
PUT과 PATCH의 차이점
- PUT은 데이터 전체를 덮어씌워 대체하는 방식으로 업데이트를 합니다.
- PATCH는 데이터의 특정 부분만 수정하는 방식입니다.
어떤 상황에 PUT과 PATCH를 사용하는 것이 적절할까?
- PUT은 데이터의 모든 필드를 갱신해야 하는 상황에 적합합니다. 예를 들어 사용자 프로필 전체를 수정해야 하는 상황에 PUT을 사용할 수 있습니다.
- PATCH는 규모가 큰 데이터의 일부만 수정해야 할 때 사용하면 서버에 불필요한 부담을 덜 수 있습니다. 위와 동일한 예시를 들자면 사용자 프로필에서 비밀번호만 수정해야 하는 상황에 사용할 수 있겠습니다.
OPTIONS
OPTIONS는 특정 페이지에서 어떤 HTTP 메서드를 지원하는지 확인할 때 사용됩니다. 이 메서드는 클라이언트가 어떤 작업을 할 수 있는지 미리 확인할 수 있게 해 줍니다.
이해를 돕기 위해 DRF로 만들어 두었던 URL에 Thunder Client로 OPTIONS 요청을 보내보겠습니다.
아래와 같은 응답을 확인할 수 있습니다.
이 응답을 통해 해당 URL에서 지원하는 메서드 목록을 확인할 수 있습니다.
추가적으로, DRF에서는 해당 URL에서 사용할 수 있는 메서드뿐만 아니라 메서드별로 지원하는 필드의 세부 정보까지 제공합니다.
{
"name": "Post List",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"POST": {
"id": {
"type": "integer",
"required": false,
"read_only": true,
"label": "ID"
},
"author": {
"type": "field",
"required": false,
"read_only": true,
"label": "Author"
},
...
이 응답은 이 페이지에서 POST 메서드를 사용할 때 클라이언트가 전송해야 하는 데이터와 서버에서 자동으로 설정되는 필드들을 상세히 알려줍니다. REST API를 개발하거나 디버깅할 때 OPTIONS 메서드를 잘 활용하면 매우 유용할 것 같습니다.
'코딩' 카테고리의 다른 글
[Web 기술] WebSocket이란? (4) | 2024.10.11 |
---|---|
[HTTP] RESTful API 란? (1) | 2024.09.27 |
[HTTP] PUT, DELETE 그리고 멱등성 (1) | 2024.09.05 |
[HTTP] GET 그리고 POST (0) | 2024.08.22 |
[GitHub] 초보 개발자를 위한 .gitignore 작성 요령과 팁 (0) | 2024.08.20 |