Me pregunto si usar parámetros de matriz o consulta en mis URL. Encontré una discusión anterior sobre ese tema no satisfactoria.
Ejemplos
- URL con parámetros de consulta: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL con parámetros de matriz: http: //some.where/thing; paramA = 1; paramB = 6542
A primera vista, los parámetros de matriz parecen tener solo ventajas:
- más legible
- no se requiere codificación ni decodificación de "&" en documentos XML
- URL con "?" no se almacenan en caché en muchos casos; Las URL con parámetros de matriz se almacenan en caché
- los parámetros de la matriz pueden aparecer en todas partes en la ruta y no se limitan a su final
- Los parámetros de la matriz pueden tener más de un valor:
paramA=val1,val2
Pero también hay desventajas:
- solo unos pocos marcos como JAX-RS admiten parámetros de matriz
- Cuando un navegador envía un formulario a través de GET, los parámetros se convierten en parámetros de consulta. Por lo tanto, termina en dos tipos de parámetros para la misma tarea. Para no confundir a los usuarios de los servicios REST y limitar el esfuerzo para los desarrolladores de los servicios, sería más fácil usar siempre parámetros de consulta, en esta área.
Dado que el desarrollador del servicio puede elegir un marco con soporte de matriz de parámetros, la única desventaja restante sería que los navegadores crean por defecto los parámetros de consulta.
¿Hay alguna otra desventaja? ¿Qué harías?