Tôi đang tự hỏi nên sử dụng ma trận hoặc tham số truy vấn trong URL của mình. Tôi tìm thấy một cuộc thảo luận cũ hơn cho chủ đề đó không thỏa mãn.
Ví dụ
- URL với thông số truy vấn: http: //some.where/thing? ParamA = 1 & paramB = 6542
- URL có tham số ma trận: http: //some.where/thing; paramA = 1; paramB = 6542
Thoạt nhìn ma trận params dường như chỉ có lợi thế:
- dễ đọc hơn
- không yêu cầu mã hóa và giải mã "&" trong tài liệu XML
- URL có "?" không được lưu trữ trong nhiều trường hợp; Các URL có tham số ma trận được lưu trữ
- tham số ma trận có thể xuất hiện ở mọi nơi trong đường dẫn và không giới hạn ở phần cuối của nó
- tham số ma trận có thể có nhiều hơn một giá trị:
paramA=val1,val2
Nhưng cũng có những nhược điểm:
- chỉ một vài khung như tham số ma trận hỗ trợ JAX-RS
- Khi trình duyệt gửi biểu mẫu qua GET, thông số sẽ trở thành thông số truy vấn. Vì vậy, nó kết thúc trong hai loại tham số cho cùng một nhiệm vụ. Để không gây nhầm lẫn cho người dùng dịch vụ REST và hạn chế nỗ lực cho các nhà phát triển dịch vụ, sẽ dễ dàng hơn khi sử dụng luôn truy vấn params - trong lĩnh vực này.
Vì nhà phát triển dịch vụ có thể chọn một khung có hỗ trợ ma trận param, nên nhược điểm duy nhất còn lại là các trình duyệt được tạo bởi các tham số truy vấn mặc định.
Có bất kỳ nhược điểm nào khác không? Bạn sẽ làm gì?