Queremos mostrarte la mejor respuesta que hemos encontrado en internet. Nosotros deseamos que te resulte útil y si puedes compartir alguna mejora puedes hacerlo..
Solución:
Porque un recurso se identifica únicamente por su SENDERO (y no por sus parámetros). Dos recursos que defina tienen la misma RUTA.
@Path("/questions/ask")
De acuerdo con la especificación JSR-311:
Dichos métodos, conocidos como métodos de subrecursos, se tratan como un método de recursos normal (consulte la sección 3.3), excepto el El método solo se invoca para los URI de solicitud que coinciden con una plantilla de URI creada mediante la concatenación de la plantilla de URI de la clase de recurso con la plantilla de URI del método..
Dado que su modelo de datos incluye dos recursos distintos, sugiero hacer dos métodos de descanso con diferentes rutas:
@Path("/questions/ask/type")
@Path("/questions/ask/user")
Esta es la forma RESTful, ya que un URI representa uno y solo un recurso y no debería haber sobrecarga. Si un URI representa más de un recurso, significa que se equivocó en alguna parte.
No puede sobrecargar las solicitudes REST.
En su capa empresarial, deberá verificar cuál de las dos variables está configurada y luego deberá realizar el procesamiento requerido.
No puede tener dos getters con el mismo uri pero diferentes parámetros de solicitud. Lo que puede hacer es tener un método getter con muchos parámetros de solicitud.
@RequestMapping(value = "uri", method = RequestMethod.GET)
public String test(@RequestParam String type, @RequestParam String byUser)
entonces llámalo con dos parámetros
/questions/ask/?type=rest&byUser=john
Debe manejar la lógica dentro del método de prueba para manejar estos parámetros en consecuencia.
Con respecto a Darijan, creo que depende de decidir ir con dos métodos o un método considerando cuál es la lógica de subrayado. Si va con 2 métodos, use dos uri. Si la lógica comercial está bien para ir con un uri, entonces use la forma en que respondí
Comentarios y puntuaciones de la guía
Puedes ayudar nuestra tarea ejecutando un comentario o puntuándolo te damos la bienvenida.