복붙노트

[SPRING] 요청 URL을 기반으로 다른 URL에 동일한 URL 매핑

SPRING

요청 URL을 기반으로 다른 URL에 동일한 URL 매핑

요청 본문에만 기반하여 RestController 클래스의 다른 메서드에 동일한 URL을 매핑 할 수 있는지 알고 싶습니다. 예 :

@RequestMapping(value="/delete", method=RequestMethod.POST )
public void delete(@RequestBody String id) {
    //do something
}

@RequestMapping(value="/delete", method=RequestMethod.POST )
public void delete(@RequestBody Book book) {
    //do something
}

요청 본문은 항상 JSON 페이로드입니다. 그것이 { "id": "foo"}라면 첫 번째 메서드를 호출하고 싶습니다. 요청 본문 :

{
    "title":"Spring Guide",
    "author":"John Doe"
}

두 번째 방법을 호출하고 싶습니다. 이것이 가능한가?

해결법

  1. ==============================

    1.페이로드만으로 차별화 할 방법은 없습니다.

    페이로드만으로 차별화 할 방법은 없습니다.

    여기에서 한 테스트와 M. Deinum과 Ali Dehghani의 답변을 토대로이 작업을 수행하는 가장 좋은 방법은 각각의 경우마다 다른 URL을 갖는 것입니다. 따라서 / books / {id}는 ID로 삭제하고, / books는 본문에있는 객체의 JSON과 함께 객체 전달을 삭제합니다. 모든 주셔서 감사합니다.

  2. from https://stackoverflow.com/questions/36483664/mapping-the-same-url-to-different-methods-based-on-request-body-in-spring by cc-by-sa and MIT license