我刚刚为我的一个最新应用程序构建了一个RESTful API.我还构建了一个简单的管理界面脚手架类,它将枚举资源并构建简单的表单和表来编辑,创建,删除等.
为了更新和删除资源,该类输出一个带有PUT和DELETE方法的表单,非常简单:
<form action="/posts/xxxxxxx" method="DELETE">
<input type="submit" value="Delete" />
</form>
Run Code Online (Sandbox Code Playgroud)
和
<form action="/posts/xxxxxxx" method="PUT">
<input type="text" name="username" value="nikcub" />
<input type="text" name="fullname" value="Nik Cubrilovic" />
<input type="text" name="email" value="nikcub@email.com" />
<input type="submit" value="Update" />
</form>
Run Code Online (Sandbox Code Playgroud)
非常简单.如果检测到Javascript,则它将拦截表单并使用XMLHTTPRequest提交回来.Javascript支持其他HTTP方法,但为什么现代浏览器不支持PUT和DELETE方法?它最终发送一个GET.
我希望当应用程序优雅地回退到使用相同方法的标准HTML时,而不是必须在类中使用隐藏字段和逻辑,或者更糟糕的是,将方法放在URI中并允许GET工作.
我想不出为什么浏览器不支持其他HTTP方法的任何原因,因为开发人员无论如何都是通过黑客攻击GET或使用POST来解决它.
我搜索了一个答案,并且能够找到它作为XHTML 2.0规范的一部分.在HTML5规范中没有提到它.
是否有任何理由不支持"HTML5兼容"浏览器?我在哪里可以发布请求以打开此备份并在浏览器中实现它?
在MongoDB中,使用$type,可以根据字段是否与BSON数据类型匹配来过滤搜索(请参阅DOCS).
例如.
db.posts.find({date2: {$type: 9}}, {date2: 1})
Run Code Online (Sandbox Code Playgroud)
返回:
{
"_id" : ObjectId("4c0ec11e8fd2e65c0b010000"),
"date2" : "Fri Jul 09 2010 08:25:26 GMT"
}
Run Code Online (Sandbox Code Playgroud)
我需要一个查询,告诉我该字段的实际类型是什么,对于集合中的每个字段.这可能与MongoDB有关吗?
我使用URL作为键,所以我需要它们是一致的和干净的.我需要一个python函数,它将获取一个URL并清理它,以便我可以从数据库中获取.例如,它将采取以下措施:
example.com
example.com/
http://example.com/
http://example.com
http://example.com?
http://example.com/?
http://example.com//
Run Code Online (Sandbox Code Playgroud)
并输出一个干净的一致版本:
http://example.com/
Run Code Online (Sandbox Code Playgroud)
我浏览了std libs和github,找不到这样的东西
更新
我找不到一个Python库来实现这里和RFC中讨论的所有内容:
http://en.wikipedia.org/wiki/URL_normalization
所以我现在正在写一个.这比我最初设想的要多得多.