Ho un servizio REST che gestisce i server video su una rete.REST: accesso ai membri di una raccolta tramite ID multipli
Ogni server video può essere identificato in diversi modi: tramite il suo numero di serie, in base al nome o dal numero di macchina.
Per restituire una raccolta di tutti i server disponibili sulla mia rete, le cose sono praticamente semplice: ho definito il seguente itinerario:
[Route("/servers", "GET")]
e la seguente classe richiesta:
public class ServerCollection : IReturn<List<ServerDto>>
{
...
}
Ora, vorrei restituire un server specifico dalla mia collezione, identificando o tramite il suo numero di serie, dal suo nome macchina o dal suo numero di macchina.
Per farlo, ho definito i seguenti itinerari:
[Route("/servers/{SerialNumber}", "GET")]
[Route("/servers/machinenumbers/{MachineNumber}", "GET")]
[Route("/servers/machinenames/{MachineName}", "GET")]
e la seguente classe richiesta:
public class Server : IReturn<ServerDto>
{
public uint SerialNumber { get; set; }
public uint MachineNumber { get; set; }
public string MachineName { get; set; }
}
Quindi, posso accedere al mio collezione server tramite:
GET /servers
e ottenere un server specifico utilizzando:
GET /servers/3
GET /servers/machinenumbers/42
GET /servers/machinenames/supercalifragilisticexpialidocious
È il modo giusto di procedere? Ho la sensazione che questo non sia molto RESTful. Dovrei considerare questo come una ricerca nella mia collezione invece di utilizzare le risorse "artificiali" ?