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