HTTP API 설계 질문드립니다.
311
작성한 질문수 2
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}")로 동일하게 작성해도 되는것이 아닌지 질문드립니다.
이
답변 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
616
1
ETag 질문입니다.
0
728
1
캐시의 설정 주체
0
534
1
영속쿠키 질문입니다.
0
503
1
협상(accept-language)
0
687
1
에러 코드의 구현 주체
0
438
1
웹서버가 구현?
0
596
1
필수헤더?
1
560
1
Host와 Port
0
774
1
다른 도메인이 같은 포트를 사용하는 경우
0
1259
1
표준 헤더와 임의 헤더
0
534
1
POST 등록 후 Location 헤더
0
569
1
프로세스의 상태가 변경되는 경우에 Post 사용
1
1809
1
지속연결에 대해서.
0
692
1
제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.
0
593
1
캐시 내용중 no cache 일때
0
358
1
DNS 서버 관련 질문
1
748
1
캐시로 저장된 파일의 유효기간은 얼마나 되나요?
0
663
1
웹브라우저 요청흐름 질문입니다.
0
847
1
캐시 무효화 질문드립니다
0
561
1
리다이렉트와 리다이렉션 차이?
0
2596
1
쿠키 및 세션 관련 질문드립니다
0
587
1
HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.
0
1645
1
header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?
0
480
1





