Kaj*_*nus 2 api rest url http query-string
如果我用没有参数值的查询字符串设计我的 REST API,你能想到什么缺点?像这样:
http://host/path/to/page?edit
http://host/path/to/page?delete
http://host/path/to/page/+commentId?reply
Run Code Online (Sandbox Code Playgroud)
而不是例如:
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
Run Code Online (Sandbox Code Playgroud)
(编辑:任何page-X?edit和page-X?delete链接将触发 GET 请求,但不会实际编辑或删除页面。相反,它们显示一个页面<form>,其中page-X可以编辑,或者显示<form>一个真正删除页面-X?确认对话框。该实际编辑/删除请求将POST或DELETE请求。在相同的方式host/api/edit?page=path/to/page显示与编辑页面<form>。/编辑。)
请注意,这?action不是查询字符串通常的格式。相反,它们的格式通常如下:?key=value;key2=v2;key3=v3
此外,有时我会使用这样的 URL:
http://host/path/to/page?delete;user=spammer
Run Code Online (Sandbox Code Playgroud)
也就是说,我将包含一个没有值 ( delete)的查询字符串参数和一个具有值 ( user=spammer) 的参数(为了删除垃圾邮件发送者发布的所有评论)
我的 Web 框架可以很好地处理像?reply. 所以我想我最想知道的是,你能想到任何客户端问题吗?或者有什么问题,我应该决定使用另一个 Web 框架吗?(您知道您使用的框架是否提供有关没有参数值的查询字符串的信息吗?)
(我通过阅读http://labs.apache.org/webarch/uri/rfc/rfc3986.html 的理解是,我使用的查询字符串格式很好,但这对所有客户端和服务器框架有什么影响。)
(我目前使用 Lift-Web 框架。我也测试了 Play Framework,并且可以获取无值的查询字符串参数,所以从我的角度来看,Play 和 Lift-Web 似乎都不错。)
这是一个关于没有值的查询字符串的相关问题。但是,它处理null在某些情况下返回的 ASP.NET 函数:Access Query string parameters with no values in ASP.NET
亲切的问候, Kaj-Magnus