Necesito formar un caché, para las regiones por id, que se pasan en el parámetro region_ids, la solicitud se ve así:

localhost:8080/cache/mscache?region_ids=5,19....,23

¿Cómo es mejor leer estos diversos parámetros en el código del programa?

0
Buba 5 oct. 2021 a las 11:12

3 respuestas

La mejor respuesta

Léelos una cadena y el análisis de esa cadena en lo que quieras:

@GetMapping("/cache/mscache)
public String getCache(@RequestParam String listOfRegionIds)
    List<String> ids = Arrays.stream(listOfRegiosIds.split(",")).collect(Collectors.toList);
// ...
}

Más información en https://www.baeldung.com/spring-request-param

3
J Asgarov 5 oct. 2021 a las 08:19

Puede utilizar un array o un List

    @GetMapping(value = "/test")
    public void test(@RequestParam List<String> ids) {
        ids.forEach(System.out::println);
    }

Haz una solicitud de obtención como:

http://localhost:8080/test?ids=1,2,3

Consulte aquí para más detalles.

2
Aristotelis 5 oct. 2021 a las 08:44

Si la solicitud es una solicitud Get, use @RequestParam como sugirió J Asgarov, si es algo más, también puede usar @RequestBody creando una clase que contenga todos sus parámetros

Por ejemplo, una solicitud de publicación podría verse así:

@PostMapping("...")
public String postCache(@RequestBody RegionIdsRequest regionIds)
// ...
}

public class RegionIdsRequest{
    List<int> regionsIds = //...
}
0
KASMI G. 5 oct. 2021 a las 08:39