Eu estou querendo saber se deve usar parâmetros de matriz ou consulta em meus URLs. Eu achei uma discussão mais antiga sobre esse tópico não satisfatória.
Exemplos
- URL com parâmetros de consulta: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL com parâmetros de matriz: http: //some.where/thing; paramA = 1; paramB = 6542
À primeira vista, os parâmetros de matriz parecem ter apenas vantagens:
- mais legível
- nenhuma codificação e decodificação de "&" em documentos XML é necessária
- URLs com "?" não são armazenados em cache em muitos casos; URLs com parâmetros de matriz são armazenados em cache
- parâmetros de matriz podem aparecer em qualquer lugar do caminho e não estão limitados ao seu final
- parâmetros de matriz podem ter mais de um valor:
paramA=val1,val2
Mas também há desvantagens:
- apenas algumas estruturas, como JAX-RS, suportam parâmetros de matriz
- Quando um navegador envia um formulário via GET, os parâmetros se tornam parâmetros de consulta. Portanto, acaba em dois tipos de parâmetros para a mesma tarefa. Para não confundir os usuários dos serviços REST e limitar o esforço para os desenvolvedores dos serviços, seria mais fácil usar sempre os parâmetros de consulta - nesta área.
Como o desenvolvedor do serviço pode escolher uma estrutura com suporte a parâmetros de matriz, a única desvantagem restante seria que os navegadores criem por parâmetros de consulta padrão.
Existem outras desvantagens? O que você faria?