ネットワーク上にビデオサーバーを処理するRESTサービスがあります。REST:複数のIDを使用してコレクションのメンバーにアクセスする
各ビデオサーバーは、シリアル番号、 の名前、またはマシン番号によって識別できます。
私のネットワーク上で使用可能なすべてのサーバーのコレクションを返すために、物事 はかなり単純です:私は、次のルートを定義しています
[Route("/servers", "GET")]
と、次のリクエストクラス:
public class ServerCollection : IReturn<List<ServerDto>>
{
...
}
さて、私は自分のコレクションから特定のサーバを返却したいと思います。 はシリアル番号、マシン名、マシン番号のいずれかで識別します。
GET /servers
:私はを通じて自分のサーバーのコレクションにアクセスすることができ、そう
public class Server : IReturn<ServerDto>
{
public uint SerialNumber { get; set; }
public uint MachineNumber { get; set; }
public string MachineName { get; set; }
}
:
[Route("/servers/{SerialNumber}", "GET")]
[Route("/servers/machinenumbers/{MachineNumber}", "GET")]
[Route("/servers/machinenames/{MachineName}", "GET")]
と、次のリクエストクラス:そうするため
は、私は次のルートを定義しました
と特定のサーバーを取得する:
GET /servers/3
GET /servers/machinenumbers/42
GET /servers/machinenames/supercalifragilisticexpialidocious
これは正しい方法ですか?私はこれがあまり RESTfulではないと感じています。 「人工的な」 リソースを使用する代わりに、これをコレクションの検索と見なすべきですか?