Sto provando a creare un'API RESTful utilizzando l'API Web ASP.NET per un gioco, e qui ci sono i metodi che ho finora:
/games GET
/games/:id GET
/games POST
/games PUT
/games DELETE
/users GET
/users/:id GET
/users/:id/games GET (fetch user's games)
/users POST
/users PUT
/users DELETE
Ho due domande:
-
Dove posizionare il metodo / users /: id / games? Ho due controller (GamesController.cs e UsersController.cs). La risorsa che sto richiedendo è un gioco, quindi dovrebbe andare nel GamesController e passare l'userid come parametro, e lo mapperei semplicemente a / users /: id / game route?
-
Anche se ho un metodo che restituisce una serie di giochi (/ giochi GET), in realtà non lo userei almeno inizialmente. Mostrerò invece solo 1 gioco alla volta per l'utente, e questo gioco sarà un gioco "popolare / caldo" in cui c'è molta attività e l'utente può anche prendere qualche azione (ci sono altri giochi dove l'utente non può fare alcuna azione e deve aspettare l'azione dell'avversario). Posso avere un metodo chiamato GetHotGame () che determinerà quale gioco mostrare all'utente, quando l'utente fa clic su "Avanti", ma quello che mi chiedo è quale dovrebbe essere il metodo REST?
Potrei semplicemente usare l'endpoint / games /: id e passare "hot" come id e usare il metodo GetHotGame per decidere quale gioco restituire all'utente? O dovrei usare l'endpoint / games e passare "hot" come una querystring e implementare una sorta di paging in cui il numero di pagine è solo uno? Oppure, dovrei avere un endpoint separato, qualcosa come games / hot o / hotgame?