Je me demande s'il faut utiliser des paramètres de matrice ou de requête dans mes URL. J'ai trouvé une discussion plus ancienne sur ce sujet pas satisfaisante.
Exemples
- URL avec les paramètres de requête: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL avec paramètres de matrice: http: //some.where/thing; paramA = 1; paramB = 6542
À première vue, les paramètres de matrice semblent n'avoir que des avantages:
- plus lisible
- aucun encodage ni décodage de «&» dans les documents XML n'est requis
- URL avec "?" ne sont pas mis en cache dans de nombreux cas; Les URL avec des paramètres de matrice sont mises en cache
- les paramètres de la matrice peuvent apparaître partout dans le chemin et ne sont pas limités à sa fin
- Les paramètres de matrice peuvent avoir plusieurs valeurs:
paramA=val1,val2
Mais il y a aussi des inconvénients:
- seuls quelques frameworks comme JAX-RS prennent en charge les paramètres de matrice
- Lorsqu'un navigateur soumet un formulaire via GET, les paramètres deviennent des paramètres de requête. Cela se termine donc par deux types de paramètres pour la même tâche. Pour ne pas confondre les utilisateurs des services REST et limiter l'effort des développeurs des services, il serait plus facile d'utiliser toujours les paramètres de requête - dans ce domaine.
Étant donné que le développeur du service peut choisir un cadre avec la prise en charge des paramètres de matrice, le seul inconvénient restant serait que les navigateurs créent par défaut des paramètres de requête.
Y a-t-il d'autres inconvénients? Qu'est-ce que tu ferais?