inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP API 설계 예시

HTTP API 설계 질문드립니다.

311

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

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