Zastanawiam się, czy używać parametrów macierzy lub zapytania w moich adresach URL. Starsza dyskusja na ten temat nie była satysfakcjonująca.
Przykłady
- URL z parametrami zapytania: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL z parametrami macierzy: http: //some.where/thing; paramA = 1; paramB = 6542
Na pierwszy rzut oka parametry macierzy wydają się mieć tylko zalety:
- bardziej czytelne
- nie jest wymagane kodowanie ani dekodowanie znaku „&” w dokumentach XML
- Adresy URL z „?” w wielu przypadkach nie są buforowane; Adresy URL z parametrami macierzy są buforowane
- parametry macierzy mogą pojawić się wszędzie na ścieżce i nie są ograniczone do jej końca
- parametry macierzy mogą mieć więcej niż jedną wartość:
paramA=val1,val2
Ale są też wady:
- tylko kilka frameworków, takich jak JAX-RS, obsługuje parametry macierzy
- Kiedy przeglądarka przesyła formularz za pomocą GET, parametry stają się parametrami zapytania. Tak więc kończy się na dwóch rodzajach parametrów dla tego samego zadania. Aby nie mylić użytkowników usług REST i nie ograniczać wysiłku twórców usług, łatwiej byłoby zastosować zawsze parametry zapytania - w tym obszarze.
Ponieważ twórca usługi może wybrać framework z obsługą parametrów macierzy, jedyną pozostałą wadą byłoby to, że przeglądarki tworzą domyślne parametry zapytań.
Czy są jakieś inne wady? Co byś zrobił?