inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP API 설계 예시

HTTP API 설계 질문드립니다.

319

192

작성한 질문수 2

1

HTTP API를 POST 기반으로 등록하는 경우

회원 조회 - /mebers/{id} - GET 방식

회원 등록 - /mebers/{id} - POST 방식

회원 삭제 - /mebers/{id} - DELETE 방식

이라고 하셨는데,

ID로 회원조회, 수정, 삭제하는 기능을@RequestMapping("/{id}") 로 동일하게 작성하는 경우 아래와 같이 오류가 발생합니다.

hellospring.demo.controller.MemberController#getById(long)

to { [/api/members/{id}]}: There is already 'memberController' bean method

hellospring.demo.controller.MemberController#remove(long) mapped.

Ambiguous mapping. Cannot map 'memberController' method 

hellospring.demo.controller.MemberController#getById(long)

to { [/api/members/{id}]}: There is already 'memberController' bean method

hellospring.demo.controller.MemberController#remove(long) mapped.

GET 방식, PUT 방식, DELETE 방식으로 다르기 때문에 @RequestMapping("/{id}")로 동일하게 작성해도 되는것이 아닌지 질문드립니다.

network

답변 1

4

나무늘보

안녕하세요. 배경난 님, 공식 서포터즈 codesweaver 입니다.

.

getById() 메서드와 update() 메서드 위에 있는 애노테이션을 수정해주셔야 합니다. 

@GetMapping을 사용하고 싶으신 경우 @GetMapping("/{id}") 와 같이 작성하시면 되며 @RequestMapping 부분은 삭제해주시기 바랍니다.

@PutMapping의 경우에도 @PutMapping("/{id}") 와 같이 작성하시면 됩니다.

.

만약 @RequestMapping 으로 모든 HTTP 메서드를 처리하고 싶으신 경우 아래와 같이 value 와 method 를 직접 지정하는 방법을 사용하실 수 있습니다.

@RequestMapping(value = "/{itemId}", method= RequestMethod.GET

.

지금의 코드처럼 @GetMapping 과 @RequestMapping을 동시에 사용하실 경우 원치 않는 결과가 나올 수 있습니다.

.

감사합니다.

캐시 관련 질문입니다.

0

632

1

ETag 질문입니다.

0

741

1

캐시의 설정 주체

0

541

1

영속쿠키 질문입니다.

0

518

1

협상(accept-language)

0

696

1

에러 코드의 구현 주체

0

444

1

웹서버가 구현?

0

604

1

필수헤더?

1

566

1

Host와 Port

0

784

1

다른 도메인이 같은 포트를 사용하는 경우

0

1268

1

표준 헤더와 임의 헤더

0

540

1

POST 등록 후 Location 헤더

0

576

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1818

1

지속연결에 대해서.

0

698

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

600

1

캐시 내용중 no cache 일때

0

367

1

DNS 서버 관련 질문

1

755

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

671

1

웹브라우저 요청흐름 질문입니다.

0

853

1

캐시 무효화 질문드립니다

0

566

1

리다이렉트와 리다이렉션 차이?

0

2647

1

쿠키 및 세션 관련 질문드립니다

0

595

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1654

1

header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?

0

486

1