POST 사용 예시 질문
388
작성한 질문수 10
강사님 안녕하세요:)
강의 내용 중 POST 예시에서
"기존 자료에 데이터 추가 ex) 한 문서 끝에 내용 추가하기" 에서 궁금한 점이 생겨 질문드립니다.
위 경우 저는 PATCH 나 PUT을 사용해서 /contents/{id} 이런식으로 기존 내용에 추가해야 할 것이라고 생각했는데, 왜 POST를 사용하는지 궁금합니다.
또한, POST를 사용할 경우 http body에 기존 문서의 id를 넣어서 전송해야 되는 것 맞나요?
그리고 뒤에 HTTP API 설계 예시 강의 "HTTP API -컬렉션 회원관리 시스템" 부분에서 PATCH와 PUT을 사용하기 애매한 경우에는 POST를 사용하여 수정하라고 하셨는데, 어떤 경우가 애매한지 궁금합니다("기존 자료에 데이터 추가"가 그 애매한 경우인가요..?).
쓰다보니 질문이 많아졌네요,,ㅜ
강의를 들으면서 많이 배우고 있습니다. 정말 감사합니다!!
답변 2
5
안녕하세요. 현집님
강의 내용 중 POST 예시에서 "기존 자료에 데이터 추가 ex) 한 문서 끝에 내용 추가하기"
이 부분은 사실 자주 사용하는 예시는 아닙니다. 해당 예시를 자세히 설명드리면 로그파일이 있는데, 그 로그파일 끝에 로그를 추가 하는 것입니다. 예를들어서 다음과 같을 때
GET /logs/a01
로그1줄
로그2줄
로그3줄
이렇게 실행하면
POST /logs/a01
body: 로그 4줄
결과
로그1줄
로그2줄
로그3줄
로그4줄
이런식으로 된다는 예시입니다. 물론 서버에서 POST /logs/{id}로 보내면 해당 리소스에 데이터를 추가합니다. 라고 사전에 개발자가 스펙을 정의해야 합니다. 이 경우 생각하신 것 처럼 PATCH를 사용해도 됩니다. 그런데 PUT은 리소스 전체를 다 보내야 하기 때문에, 적절하지 않습니다.
마지막에 PATCH와 PUT을 사용하기 애매한 경우는 실제 개발을 해보면 상당히 많이 만나게 됩니다.
단순히 해당 리소스만 조금 변경하는게 아니라, 해당 리소스를 변경하는 것 처럼 보이지만, 전체 프로세스의 상태가 변경되는 경우에는 POST를 사용하는게 맞다 생각합니다. 예를 들어서, 단순히 주문의 상태를 대기 -> 배달시작으로 변경하려고 PATCH를 생각했는데, 실제로는 여러 프로세스가 엮여서 돌아가게 되면, 이 경우는 특정 리소스 하나를 변경했다기 보다는 프로세스 자체를 진행한 것이기 때문에, POST를 사용하는게 더 적절하다 생각합니다.
감사합니다.
캐시 관련 질문입니다.
0
615
1
ETag 질문입니다.
0
725
1
캐시의 설정 주체
0
533
1
영속쿠키 질문입니다.
0
501
1
협상(accept-language)
0
684
1
에러 코드의 구현 주체
0
436
1
웹서버가 구현?
0
593
1
필수헤더?
1
557
1
Host와 Port
0
771
1
다른 도메인이 같은 포트를 사용하는 경우
0
1256
1
표준 헤더와 임의 헤더
0
529
1
POST 등록 후 Location 헤더
0
565
1
프로세스의 상태가 변경되는 경우에 Post 사용
1
1807
1
지속연결에 대해서.
0
689
1
제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.
0
589
1
캐시 내용중 no cache 일때
0
355
1
DNS 서버 관련 질문
1
744
1
캐시로 저장된 파일의 유효기간은 얼마나 되나요?
0
656
1
웹브라우저 요청흐름 질문입니다.
0
844
1
캐시 무효화 질문드립니다
0
558
1
리다이렉트와 리다이렉션 차이?
0
2588
1
쿠키 및 세션 관련 질문드립니다
0
584
1
HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.
0
1639
1
header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?
0
478
1





