Invio di più risorse sotto endpoint REST

0

Sto progettando un'API in cui -

1. There can be multiple devices under a gateway.
2. There are multiple sensors on every device.

GET /devices/d1/sensors/s1 restituisce lo stato del sensore s1 sul dispositivo d1 . Andando avanti, ho bisogno di consentire la ricerca di sensori su più dispositivi.

Qualcosa come GET /devices/d1,d2,d7,d30,d45,d500/sensors/s1,s5 non sarebbe scalabile dato che avrei a che fare con molti dispositivi + sensori e aumentare la lunghezza dell'URL in modo lineare sarebbe una cattiva progettazione.

Come posso avvicinarmi a questo in modo più elegante?

    
posta erbdex 16.10.2014 - 02:53
fonte

1 risposta

2

Una delle idee principali alla base di REST è che ogni URL fornisce una rappresentazione per una singola risorsa (sebbene quella risorsa possa essere una raccolta che fornisce informazioni su altre risorse).

Se vuoi ottenere informazioni su più sensori, in cui non sai / cura a quale dispositivo è collegato ogni sensore, il modo canonico è di fornire una risorsa di sensori di livello superiore: GET /sensors . Questo ti darebbe i tutti sensori nel sistema. Se non vuoi limitare l'elenco in qualche modo, puoi utilizzare i parametri di query:

GET /sensors?device=d1,d2,d7,d30,d45,d500&type=temperature

ti darebbe i sensori di temperatura collegati ai dispositivi elencati.

Se fai ti interessa a quale dispositivo è collegato ogni sensore, non c'è modo di eseguire più richieste, una per ogni dispositivo.

    
risposta data 16.10.2014 - 08:57
fonte

Leggi altre domande sui tag