Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 具有无值键的查询字符串_Api_Http_Url_Rest_Query String - Fatal编程技术网

Api 具有无值键的查询字符串

Api 具有无值键的查询字符串,api,http,url,rest,query-string,Api,Http,Url,Rest,Query String,如果我使用没有参数值的查询字符串设计RESTAPI,您会想到什么缺点?像这样: 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/r

如果我使用没有参数值的查询字符串设计RESTAPI,您会想到什么缺点?像这样:

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?编辑和page-X?删除链接都会触发GET请求,但实际上不会编辑或删除页面。相反,它们显示一个带有的页面,其中的page-X可以编辑,或者是一个带有真正的delete page-X的页面?确认对话框。实际的编辑/删除请求将是POST或delete请求。与host/api/edit相同,page=path/to/page显示带有编辑的页面/编辑

请注意?操作不是查询字符串通常的格式。相反,它们的格式通常是这样的:?key=value;键2=v2;键3=v3

此外,有时我会使用如下URL:

http://host/path/to/page?delete;user=spammer
也就是说,为了删除垃圾邮件发送者发布的所有评论,我将包含一个查询字符串参数,该参数没有值delete,一个参数的值user=spammer

我的Web框架可以很好地处理诸如?reply之类的查询字符串。所以我想我最想知道的是,你能想到任何客户端的问题吗?或者任何问题,我应该决定使用另一个Web框架吗?您知道您使用的框架是否提供了关于没有参数值的查询字符串的信息吗

我从阅读中了解到,我使用的查询字符串格式很好,但这对所有客户机和服务器框架都有什么影响呢

我目前使用的是Lift Web框架。我也测试了Play框架,并且有可能获得无值查询字符串参数,所以Play和Lift Web在我看来都是可以的

下面是一个关于没有值的查询字符串的相关问题。但是,在某些情况下,它处理返回null的ASP.NET函数:


顺便说一句,Kaj Magnus没有值的查询参数是没有问题的,但是将操作(尤其是破坏性的操作)放入URI是没有问题的


您真的在考虑restful设计吗?GET是一种破坏性的行为?

编辑查询参数将导致出现一个页面,其中包含一个带字段的字段,以便您可以编辑该页面。单击“提交”时,实际的编辑请求将是一篇文章。“删除查询”参数可能会显示一个带有“删除第X页”对话框的页面?在a中,实际的删除请求将是POST或delete。所以?操作实际上不会做任何事情,只显示可以提交表单的页面。你认为这是一个合理的设计吗我最好更新我原来的问题来澄清这一点?删除并不删除。啊。谢谢你的澄清。现在有道理了。你的动机是。。。有点简明扼要:——[他们]没问题。好吧,我相信你,我会等一会儿,以防出现其他答案。