【发布时间】:2012-01-25 21:41:00
【问题描述】:
一般来说,REST 社区似乎不喜欢 GET 请求中的复杂数据。我想知道这背后是否有一个很好的原则,还是只是具体化了GET字典的(任意url长度)限制?
我对 url 和资源之间的对应关系感到满意,但为什么我的 GET 请求不能在请求正文中以 json 或 xml 格式(HTTP 规范允许)获取复杂数据?
据我所知,GET 的意义在于 GET 请求表明它们不会修改服务器状态。这似乎与请求的复杂性正交。然而,许多人建议使用 PUT 或 POST 创建复杂的查询,然后在 GET 中引用。
这似乎将一个约定(在 GET 请求上没有正文)提升为原则的状态,但带来了不幸的副作用:必须维护另一个不应该成为其资源的对象的状态own -- 这就是查询。
但也许我还缺少其他一些原则——我欢迎你们的 cmets!
【问题讨论】: