Мне интересно, следует ли использовать параметры матрицы или запроса в моих URL-адресах. Я нашел более старую дискуссию, чтобы эта тема не удовлетворяла.
Примеры
- URL с параметрами запроса: http://some.where/thing?paramA=1¶mB=6542
- URL с матричными параметрами: http://some.where/thing;paramA=1;paramB=6542
На первый взгляд матричные параметры кажутся только преимуществами:
- более читаемый
- нет кодирования и декодирования "&" в документах XML требуется
- URL с "?" во многих случаях не кэшируются; URL-адреса с матричными параметрами кэшируются
- параметры матрицы могут появляться повсюду в пути и не ограничены его концом
- Параметры матрицы могут иметь более одного значения:
paramA=val1,val2
Но есть и недостатки:
- только несколько фреймворков, таких как JAX-RS поддерживают параметры матрицы
- Когда браузер отправляет форму через GET, параметры становятся параметрами запроса. Таким образом, он заканчивается двумя параметрами для одной и той же задачи. Чтобы не путать пользователей служб REST и ограничить усилия для разработчиков этих сервисов, было бы проще использовать всегда параметры запроса - в этой области.
Поскольку разработчик службы может выбрать фреймворк с поддержкой матрицы param, единственным оставшимся недостатком будет то, что браузеры создают параметры запроса по умолчанию.
Есть ли другие недостатки? Что бы вы сделали?