代码之家  ›  专栏  ›  技术社区  ›  LiorH

限制资源属性是否安全?

  •  1
  • LiorH  · 技术社区  · 15 年前

    我们的资源由几十个字段(属性)组成。我们的一些客户不需要所有资源的属性。为了节省网络负载,我们实现了一个查询字符串参数来限制资源属性。 例如,下一个URL将返回一组资源及其所有字段:

    http://myapp/myresources

    但是当客户只需要特定的字段时,他可以通过调用:

    http://myapp/myresources?fields=f1,f2,f13,f22

    我们的架构师认为这种方法是不可休息的。

    你怎么认为?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Milan Novota    15 年前

    如果您将它实现为同一资源的新媒体类型(表示),那么它将是可恢复的。它将是一个不完整的表示,但仍然是一个表示。假设您拥有此资源:

    /我的应用程序/我的资源

    它是某种资源的完整表示的集合。 对同一个收藏有不同的表示是完全可以的。但是,如果希望它符合REST,则应该将其作为新的媒体类型(格式)实现。

    然后,您可以在accept header设置为所需媒体类型的情况下查询集合,也可以使用“扩展样式中的媒体类型”(例如/myapp/myresources.f1_f2_f3)。

    你的情况有点棘手,因为你的媒体类型会被迅速发明,但我认为这并非不可能。

        2
  •  1
  •   Peter Hilton    15 年前

    如果您停止区分资源和字段,问题就会消失。

    如果资源 /myresource 有两个“子资源” /myresource/f1 /myresource/f2 ,然后通过指定一个列表同时获取这两个值是有意义的: /myresource/f1,f2 .