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 経由でフォームを送信すると、パラメーターはクエリ パラメーターになります。したがって、同じタスクに対して 2 種類のパラメーターになります。REST サービスのユーザーを混乱させず、サービスの開発者の労力を制限するには、この領域で常にクエリ パラメータを使用する方が簡単です。
サービスの開発者はマトリックス パラメーターをサポートするフレームワークを選択できるため、ブラウザーが既定でクエリ パラメーターを作成するという唯一の欠点があります。
他にデメリットはありますか?あなたならどうしますか?