En mi búsqueda continua para tratar de concentrarme en lo RESTful-ness, he venido a otro lugar donde no estoy seguro de cómo proceder. Configuré un resumen de mi pensamiento en el que diseñaba un sistema de votación simple para un recurso, al igual que SO permite votar preguntas. Por lo tanto, decir que mi recurso es una imagen, y puedo conseguir una imagen mediante una identificación, así:¿Cómo diseñarías un sistema de votación RESTful?
http://www.mysite.com/images/123123
Y en este ejemplo, que los rendimientos decir, una representación JSON de una imagen, de este modo:
{
"URL":"http://www.mysite.com/images/123123.jpg",
"Rep":"100"
}
¿Cómo diseñaría una manera de "votar" en esa imagen? Me gustaría dos operaciones; voto arriba y voto abajo. El cliente no debe saber cuánto peso lleva cada uno, porque me gustaría que el premio para un voto positivo/negativo se decida a nivel de servidor para poder cambiarlo en cualquier momento que lo desee.
Mi primera idea era tener algo como esto:
http://www.mysite.com/vote/images?image=123123
a esa URL, uno puede publicar algo como lo siguiente:
{
"Vote":"UpVote"
}
Pero estoy cuidado con los que - para mí eso dice RPC disfrazado ¿Sería esa una pobre forma de diseñar esto? Si es así, ¿qué otros diseños podría probar?
Hmm - Creo que entiendo, pero ¿no es UpVoteLink una acción, no un recurso? ¿No podría simplemente tener un "VoteLink" y un POST para eso y, en esa solicitud, especificar si se trata de un voto a favor o en contra del votante? –
Si piensas en un voto como recurso, "UpVotes" podría ser la colección de votos de tipo y el recurso "DownVotes" es la colección de votos de tipo down. Tal vez debería haber nombrado los enlaces UpVotesLink y DownVotesLink, pero el nombre del enlace realmente no afecta mucho. –
Ahh - ¡interesante! Muy genial. –