인프런 커뮤니티 질문&답변

보물섬님의 프로필 이미지
보물섬

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드의 속성

한번에 여러 회원들을 생성, 수정, 삭제 하려고 할때는?

작성

·

869

1

안녕하세요.

강의 잘 보고 있습니다.

기존에는 전부 Post 로 createMember, deleteMember, modifyMember 등으로 api를 설계 했었는데요.

강의 보면서

createMember -> Post /members

modifyMember -> Patch /members/멤버Id

deleteMember -> Delete /member/멤버Id

이런식으로 바꾸려고 합니다.

근데 생각하다보니 만약 클라이언트에서 편리성을 위해 한번에 한개씩이 아닌 여러개의 회원을 만들거나 수정하거나 삭제하려고 할때 저런식으로 하면 애매한 부분이 있어서요.

예를들면 3명의 회원을 한번에 등록하기 위해 Post /members body에 { [{name: 홍길동, age: 20}, {name: 임꺽정, age: 25}, {name: 심청이, age: 22}] } 이런식으로 요청한다고 할때 응답코드의 Location 값은 어떻게 넣어주는게 좋을까요? (회원Id 값이 3개라서요)

그리고 Put, Patch 같은경우 클라이언트가 "리소스 위치를 알고 URI 지정" 이라고 하셨는데 일괄 수정하기 위해 Patch /members { [{id: 1, age: 21}, {id:2, age: 22}] } 이런식으로 호출하는건 규칙위반이라는 뜻인가요? (URI에 리소스 위치를 넣어준게 아니라 body에 리소스id값인 id를 넣어줌)

마지막으로 Delete /members 해서 임꺽정과 심청이를 삭제하려고 하는데 Delete 메소드는 요청에 body가 허용 안된다고 나와 있어서요. 이럴땐 어떻게 설계하는게 좋을지 궁금합니다.

답변 2

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 보물섬님

다량의 데이터를 처리하는 것 처럼 애매한 경우에는 POST를 사용하고, 응답 결과에 필요한 내용을 포함하는게 좋을 것 같아요.

추가로 이 경우 URL도 대량 처리를 위한 별도의 URL을 제공하는게 좋다 생각합니다.

감사합니다.

2

보물섬님의 프로필 이미지
보물섬
질문자

그렇군요. 즐거운 주말 되세요.

보물섬님의 프로필 이미지
보물섬

작성한 질문수

질문하기