您是否可以考慮我的REST API是否包含沒有參數值的查詢字符串?像這樣:查詢字符串和鍵值不相關
http://host/path/to/page?edit
http://host/path/to/page?delete
http://host/path/to/page/+commentId?reply
相反例如:
http://host/api/edit?page=path/to/page
http://host/api/delete?page=path/to/page
http://host/api/reply?page=path/to/page&comment=commentId
(編輯:任何page-X?edit
和page-X?delete
鏈接會觸發GET請求,但實際上不會編輯或刪除頁相反,他們展現。一個<form>
的頁面,其中page-X
可以編輯,或<form>
一個真的刪除page-X? confiramtion對話框。實際的編輯/刪除請求將是POST或DELETE請求秒。以與host/api/edit?page=path/to/page
相同的方式顯示編輯<form>
的頁面。 /編輯。)
Pleace指出,?action
不是查詢字符串通常如何格式化。相反,他們通常被格式化,像這樣:?key=value;key2=v2;key3=v3
而且,有時我會使用網址,像這樣的:
http://host/path/to/page?delete;user=spammer
也就是說,我會包括沒有值的查詢字符串參數(delete
)並與值(user=spammer
)(以刪除張貼的垃圾郵件發送者所有評論)一個參數
我的Web框架科佩斯罰款查詢字符串像?reply
。所以我想我最想知道的是,你能想到任何客戶端問題嗎?或者有什麼問題,我是否應該決定使用其他Web框架? (你知道你使用的框架是否提供了沒有參數值的查詢字符串的信息嗎?)
(我從閱讀http://labs.apache.org/webarch/uri/rfc/rfc3986.html的理解是,我使用的查詢字符串格式很好,但對所有客戶端來說都有什麼影響,服務器框架無處不在)
(我目前使用的是Lift-Web框架,我也測試過Play Framework,並且有可能獲得無價值的查詢字符串參數,因此Play和Lift-Web似乎都是還好從我的觀點。)
這裏是一個相關問題關於沒有值的查詢字符串。但是,它與ASP.NET功能在某些情況下返回null
優惠:Access Query string parameters with no values in ASP.NET
親切的問候,凱伊 - 馬格努斯
'?edit'查詢參數會導致出現一個頁面,帶有'
啊。感謝您的澄清。現在它是有道理的 – 2011-04-16 19:17:55
您的動機是...有點簡潔: - )「* [他們]沒問題*」呃,我會相信你,我會等一會兒,以防其他答案出現。 – KajMagnus 2011-04-17 11:21:18