一般来说,REST社区似乎不喜欢GET请求中的复杂数据。我想知道这背后是否有一个好的原则,或者它只是对GET词典的(任意URL长度)限制进行了修改?
我对网址和资源之间的对应关系感到满意,但为什么我的GET请求不能在json或xml(HTTP规范允许)中获取请求正文中的复杂数据?
我理解GET的要点是GET请求表明它们不会修改服务器状态。这似乎与请求的复杂性正交。然而,许多人建议使用PUT或POST创建复杂查询,然后在GET中引用。
这似乎提升了一个约定(没有关于GET请求的主体)到一个原则的状态,带来了不幸的副作用:必须保持另一个不值得成为其资源的对象的状态拥有 - 这就是查询。
但也许我还缺少一些其他原则 - 我欢迎您的评论!
答案 0 :(得分:4)
担心现有的网络中介会放弃你的GET机构。幸运的是,新的httpbis规范已经对get body上的文本进行了重写,并使其变得不那么可怕了。就我个人而言,我正在考虑使用自己的身体获取,因为我想记录不安全的请求,目前我没有简单的方法来确定POST是否安全。 如果您可以控制位于用户代理和源服务器之间的组件,那么我说继续使用GET与body。