Estoy desarrollando un proyecto usando Spring Boot. Tengo un controlador que acepta solicitudes GET .
Actualmente acepto solicitudes para los siguientes tipos de URL:
pero quiero aceptar solicitudes usando parámetros de consulta :
Aquí está el código de mi controlador:
@RequestMapping(value="/data/{itemid}", method = RequestMethod.GET)
public @ResponseBody
item getitem(@PathVariable("itemid") String itemid) {
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
java
rest
spring-boot
Mehandi Hassan
fuente
fuente
@RequestParam
(buen punto de partida: la guía oficial )Respuestas:
Utilice @RequestParam
fuente
public @ResponseBody item getitem(@RequestParam("data") String itemid){
requiere que el parámetro de consulta de datos esté siempre presente. En cambio, si lo usa de esta manerapublic @ResponseBody item getitem(@RequestParam Map<String, String> queryParameters){
, hace que los datos sean opcionalesSi bien la respuesta aceptada por afraisse es absolutamente correcta en términos de uso
@RequestParam
, sugeriría además que use un <> opcional, ya que no siempre puede asegurarse de que se use el parámetro correcto. Además, si necesita un Integer o Long, simplemente use ese tipo de datos para evitar tipos de conversión más adelante en el DAO.fuente
En Spring boot: 2.1.6, puede usar como se muestra a continuación:
@ApiOperation es una anotación que proviene de Swagger api, se utiliza para documentar las apis.
fuente
required = true
por defectoEsto también me interesó y encontré algunos ejemplos en el sitio Spring Boot.
Ver aquí también
fuente