2012-12-18 151 views
0

的集合讓我們想象一下,我們有一個REST服務,文件夾結構的模型.....我怎麼會要求:文件夾或文件夾

1)特定的文件夾

2)的列表另一個文件夾下的文件夾

我可以看到它,我可以創建兩個不同的端點:

http://../folder?id=folderid (Accept: application/vnd.mycompany.folder+json) 

返回一個文件夾

http://../folders?parentid=folderid (Accept: application/vnd.mycompany.folder+json) 

返回文件夾

或者選擇accepttype的集合:

http://../folders?id=folderid (Accept: application/vnd.mycompany.folder+json) 

返回一個文件夾。

http://../folders?parentid=folderid (Accept: application/vnd.mycompany.folders+json) 

返回一組文件夾。

或總是隻返回一個集合

什麼是首選的方法?

+0

查看[RESTful API Design](http://blog.apigee.com/detail/restful_api_design)瞭解如何設計API的一般建議。 – FrVaBe

回答

0

最高級別文件夾

GET http://../folders/ 

文件夾

GET http://../folders/folder-a/ 

GET http://../folders/folder-a/folder-b/ 

凡內容是文件夾中的內容的列表,它也分在上面的網址,如果內容是文件,它會指向:

GET http://../files/folder-a/file-a/ 

如果你想添加一個文件,你可以使用...

PUT http://../files/folder-a/file-b/ 

並期望在隨後的GET上找到該地址處的文件。或者你會:

POST http://../files/folder-a/ 

而且它會回報你貼出來,如果你使用的是POST模式,而不是一個PUT模型文件的URL。

要刪除一個文件,你可以使用...

DELETE http://../files/folder-a/file-b/ 

讓我知道如果任何你想要更詳細的說明。

+0

認爲你所有的GET例子都會返回一個文件夾列表,但是如果你準確地確定了一個文件夾,但是是id還是名字......那麼終端應該返回一個集合還是一個文件夾呢? – smolesen

+0

我期望GET獲取指定文件夾的文件和文件夾列表。所以如果我要求「確切地說是一個文件夾」,我會得到文件夾a的內容列表。所以它總是一個集合 - 加上文件夾a的元數據。 – Fenton