代码之家  ›  专栏  ›  技术社区  ›  Tamás

RESTfulAPI设计问题-应该如何允许用户创建新的资源实例?

  •  0
  • Tamás  · 技术社区  · 14 年前

    我在一个研究小组工作,我们打算通过restfulapi发布我们在web上开发的一些算法的实现。这些算法大多适用于中小型数据集,在许多情况下,我们服务的用户可能希望在同一个数据集上运行多个查询(使用不同的参数),因此对我来说,允许用户提前上传数据集并在稍后的查询中引用它们似乎是合理的。从这个意义上说,数据集可以是API中的一种资源,而算法可以是另一种资源。

    我的问题是:我应该如何让用户上传他们自己的数据集?我不能简单地让用户上传他们的数据到 /dataset/dataset_id dataset_id s可能会导致ID冲突和用户意外地覆盖彼此的数据集(我相信最常用的数据集ID之一是 test ). 我认为一个理想的方法是有一个专门的URL(比如 /dataset/upload

    2 回复  |  直到 14 年前
        1
  •  3
  •   vartec    14 年前

    this 您不应该有专用的URI,而应该处理POST to/dataset/as创建。

        2
  •  1
  •   Magnus Eklund    14 年前

    你的想法没有违反休息的原则:)

    首选的方法是使用POST并在Location头中返回新创建的资源的路径。

    对你来说。客户端发布到/dataset。服务器生成一个标识符,并在位置标头中返回对数据集的引用:

    位置:/dataset/1234