inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP 메서드의 속성

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

1048

보물섬

작성한 질문수 14

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가 허용 안된다고 나와 있어서요. 이럴땐 어떻게 설계하는게 좋을지 궁금합니다.

network

답변 2

4

김영한

안녕하세요. 보물섬님

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

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

감사합니다.

2

보물섬

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

캐시 관련 질문입니다.

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