Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

PathVariable array

olá, em meu Controller eu tenho esse mapeamento, e assinatura de método

@GetMapping("/roteiros{id_array}")
    public ResponseEntity<List<Roteiro>> lista(@PathVariable("id_array") Integer [] id_array, UriComponentsBuilder uriBuilder)

Como ficaria a String da URL para acessar esse mapeamento? /roteiros/[1, 2, 3, 4]?

2 respostas

Com esse mapeamento:

@GetMapping("/roteiros/{id_array}")

a URL seria: "/roteiros/1"

O mapeamento abaixo, todavia, está errado:

@GetMapping("/roteiros{id_array}")
solução!

Oi Ricardo,

É possível sim receber um array ou List como PathVariable:

@GetMapping("/roteiros/{id_array}")
public ResponseEntity<List<Roteiro>> lista(@PathVariable("id_array") Integer [] id_array, UriComponentsBuilder uriBuilder) {
    ...
}

Ou :

@GetMapping("/roteiros/{id_array}")
public ResponseEntity<List<Roteiro>> lista(@PathVariable("id_array") List<Integer> id_array, UriComponentsBuilder uriBuilder) {
    ...
}

E para passar os valores na URL deve-se separar por vírgula:

http://localhost:8080/api/roteiros/1,2,3,4

Bons estudos!