Mi chiedo se utilizzare i parametri matrice o query nei miei URL. Ho trovato una discussione più vecchia su questo argomento non soddisfacente.
Esempi
- URL con parametri di query: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL con parametri matrice: http: //some.where/thing; paramA = 1; paramB = 6542
A prima vista i parametri della matrice sembrano avere solo vantaggi:
- più leggibile
- non è richiesta alcuna codifica e decodifica di "&" nei documenti XML
- URL con "?" non sono memorizzati nella cache in molti casi; Gli URL con parametri matrice sono memorizzati nella cache
- i parametri della matrice possono apparire ovunque nel percorso e non sono limitati alla sua fine
- i parametri della matrice possono avere più di un valore:
paramA=val1,val2
Ma ci sono anche degli svantaggi:
- solo alcuni framework come JAX-RS supportano i parametri della matrice
- Quando un browser invia un modulo tramite GET, i parametri diventano parametri di query. Quindi finisce in due tipi di parametri per la stessa attività. Per non confondere gli utenti dei servizi REST e limitare lo sforzo per gli sviluppatori dei servizi, sarebbe più facile usare sempre i parametri di query - in quest'area.
Poiché lo sviluppatore del servizio può scegliere un framework con supporto per i parametri matrix, l'unico svantaggio rimanente sarebbe che i browser creano con parametri di query predefiniti.
Ci sono altri svantaggi? Cosa faresti?