我正在一个研究小组中工作,我们打算发布通过RESTful API在Web上开发的一些算法的实现。大多数这些算法适用于中小型数据集,在很多情况下,我们服务的用户可能想在同一个数据集上运行多个查询(使用不同的参数),因此对我来说,允许用户上传它们预先提供数据集并在稍后查询它们。从这个意义上说,数据集可能是我的API中的一个资源,算法可能是另一个。RESTful API设计问题 - 应该如何让用户创建新的资源实例?
我的问题是:我应该如何让用户上传自己的数据集?我不能简单地让用户上传他们的数据到/dataset/dataset_id
,因为让用户发明自己的dataset_id
可能导致ID冲突,并且用户意外覆盖彼此的数据集。 (我相信最常用的数据集ID之一是test
)。我认为一个理想的方法是拥有一个专用的URL(如/dataset/upload
),用户可以在其中发布数据集,响应将包含存储数据集的唯一ID,但我不确定它是否违反基本REST的原则。处理这种情况的首选方式是什么?
大,感谢 - 和耻在我看来,通常它是维基百科,我首先寻找的是事物,但我从来没有想到它可以提供对REST API设计原则的见解。 – 2010-06-11 13:49:07