我有一個REST服務處理網絡上的視頻服務器。它的名字由它的序列號, ,或通過其機號:REST:通過多個ID訪問集合的成員
每個視頻服務器都可以通過多種方式來確定。
對於我的網絡上返回的所有服務器的可用集合,事情 是非常簡單的:我已經定義了以下路線:
[Route("/servers", "GET")]
和下面的請求類:
public class ServerCollection : IReturn<List<ServerDto>>
{
...
}
現在,我想從我的收藏中返回一個特定的服務器,通過它的序列號,機器名或機器號來識別 。
爲了這樣做,我已經定義了以下路線:
[Route("/servers/{SerialNumber}", "GET")]
[Route("/servers/machinenumbers/{MachineNumber}", "GET")]
[Route("/servers/machinenames/{MachineName}", "GET")]
和下面的請求類:
public class Server : IReturn<ServerDto>
{
public uint SerialNumber { get; set; }
public uint MachineNumber { get; set; }
public string MachineName { get; set; }
}
所以,我可以通過訪問我的服務器集合:
GET /servers
並使用以下方法獲取特定服務器:
GET /servers/3
GET /servers/machinenumbers/42
GET /servers/machinenames/supercalifragilisticexpialidocious
是不是正確的方式進行?我有這種感覺,這是不是很RESTful 。我是否應該將此視爲我的收藏中的搜索,而不是使用「人造」 資源?