2016-06-24 1 views
1

내가 그 중 내가Spring REST와 복잡한 쿼리 매개 변수를 사용하려면 어떻게해야합니까?

?attributeNames[0]=Foo&attributeValues[0]=Bar&attributeValues[0]=Baz 

(또는 의미 상응하는 형식으로 보내고 싶어요 일부 속성이 있습니다, 일부 검색어에 의해 필터링 할 자원이 - 각각의 이름이 하나에 매핑 할 수 있습니다 더 많은 값)

스프링 REST 엔드 포인트 내에서 이것을 표현하는 가장 좋은 방법은 무엇입니까? 나는

public void endpoint(@RequestParam(...)String[] names, @RequestParam(...)String[][] values) { 
} 

같은 방법 매개 변수를 시도했지만이 예상대로 (필자는 매개 변수 이름을 올바르게를 지정할 수있는 방법을 볼 수 없습니다) 작동하지 않습니다. 이 작업을 수행 할 수 있습니까 아니면 다른 메커니즘 (예 : JSON 개체로 매개 변수를 직렬화)을 사용하면 더 잘 작동할까요?

+0

요청 매개 변수는 특히 배열의 경우 자체 제한 사항이 있습니다. 주어진 답이 언급했듯이,이 경우에는 요청 본문으로 전달하는 것이 좋습니다. –

+0

[Can Spring MVC는 다중 값 쿼리 매개 변수를 처리 할 수 ​​있습니까?] (http://stackoverflow.com/questions/9768509/can-spring-mvc-handle-multivalue-query-parameter) –

+0

@DanielFigueroa 가깝지만 필요합니다. 하나의 매개 변수의 색인을 다른 매개 변수에서 참조 할 수 있습니다. –

답변

1

기술적으로 이것은 하나의 쿼리 매개 변수로 구현할 수 있습니다. 하나의 매개 변수로 해석 될 수 있습니다.

그러면 끝점에서 프로그래밍 방식으로 처리 할 수 ​​있습니다.

하지만 URL에 많은 내용을 노출하게되므로 권장되지 않습니다. 더 나은 방법은 요청 본문에서 Mutlipart 또는 양식 매개 변수로 처리하는 것입니다.

관련 문제