2014-01-21 38 views
0

我正在实现发布文件的异步REST API,然后将其添加到队列以供进一步处理。我的问题是这种命名资源的最佳做法。REST如何命名队列资源

资源#1 POST文件其中{type}是动态的。

POST /files/{type} 

将数据发布到此资源。它排队,用户将收到唯一的队列ID。应如何命名文件队列的资源?

资源#2。获得文件排队

OPTION 1. GET /files/queues/{QueueID}

OR

OPTION 2. GET /files/{type}/queues/{QueueID}

哪一个更有意义?用户可以上传具有不同{type}的文件。

,或者我应该只使用获取队列的项目,如完全不同的资源:

GET /queues 

/queues/{QueueID} 

感谢提示。

回答

1

这取决于您的需求。 (或客户的需求)

我会去“/ queues/{QueueID}”选项,因为queueId本身(没有类型)标识文件,所以不需要包含它。 此外,我甚至会从POST方法中省略{type}变量,因为您可以简单地在HTTP标头中发送该信息。 (内容类型)

当您必须显示按类型分组的文件时,“文件/ {类型}”方法更有用。没有这种需要,就没有必要进一步复杂化资源标识符。

(注意:如果“排队”和“文件”的项目是相同的,那么你可以使用GET /文件/ {QueueId})

+0

谢谢,我觉得独立的资源/队列/ {QueueID}中这种情况是明确的解决方案另外,也许我可以为'POST/files/{type}'--Request返回header'Location:/ queues/{QueueID}'。 – kleht8