Как Вы разработали бы УСПОКОИТЕЛЬНУЮ систему голосования? [закрытый]

Вы можете использовать панд to_numeric - обязательно добавьте errors=coerce.

13
задан Rob 24 February 2009 в 15:29
поделиться

5 ответов

Чтобы быть успокоительными, необходимо возвратить что-то вроде этого

{
"URL":"http://www.mysite.com/images/123123.jpg",
"Rep":"100"
"UpVoteLink":"http://blah, blah, blah",
"DownVoteLink":"http://blah, blah, something else blah",
}

Что касается REST не имеет значения, какой формат ссылок. Пока Ваш клиент знает, что это, как предполагается, делает POST к "UpVoteLink" или "DownVoteLink", это не могло заботиться меньше, каков формат URL.

Кроме того, если Вы решаете через две недели, что Вам не нравятся URL, которые Вы выбрали, можно изменить их, и никто не будет заботиться!

Хорошо, хорошо, если Вы действительно хотите предложение для дизайна URL, как насчет

POST http://www.mysite.com/UpVotes?url=http://www.mysite.com/images/1234.jpg

POST http://www.mysite.com/DownVotes?url=http://www.mysite.com/images/1234.jpg

То, что прохладно об этом дизайне, - то, что Вы могли голосовать по изображениям, которые даже не находятся на Вашем сайте!

6
ответ дан 2 December 2019 в 01:21
поделиться

С точки зрения ресурсов изображение является вещью, которая имеет URI (именно это делает его ресурсом). Далее, чем это, это имеет набор свойств (размер, данные EXIF, и т.д.).

Когда Вы думаете о голосах за изображение, вопрос, если голоса являются ресурсом в себе.

Возможности, делание Получения на/images/23/votes возвратило бы сводку или список всех голосов, которые UI будет использовать для отображения рядом с изображением. Каждый раз, когда Вы хотите изменить те голоса, ресурс, который Вы изменяете, является голосами.

Чтобы быть успокоительным, клиент должен только понять тип среды, который Вы разработали, не URIs или процесс для следования для голосования.

В Вашем примере Вы определили бы новый формат, используемый везде на Вашем сайте. Для переформулирования yoru примера ПОЛУЧЕНИЕ/images/23/votes возвратилось бы (в xml, но можно повторно сформулировать его в json):

<votes>
 <link href="/images/23" rel="subject" />
 <form action="/images/23/votes" mediatype="application/json">
   <submit name="Vote" value="Up">Vote up</submit>
   <submit name="Vote" value="Down">Vote down</submit>
 </form>
</votes>

Идея позади этого формата состоит в том, что у Вас есть универсальный способ определить, как клиент отправляет данные на сервер, и создайте документ. Все предыдущие примеры, которые показали правильно, делают URI зависящим от сервера. Я предлагаю, чтобы то, что Вы отправляете на сервер, было определено в формах что отправленный сервер.

Поэтому проведите больше времени, определяя, как yoru json клиент собирается понять, как создать объекты json для представления на основе общего языка формы, и Вы найдете, что, после того как это сделано, у Вас есть очень слабая связь между cient и сервером, и сервер имеет гибкость для изменения всех специфических особенностей, не повреждая клиенты.

5
ответ дан 2 December 2019 в 01:21
поделиться

Это казалось бы глупым мне к POST простой ответ как перенесенный в JSON

Почему не что-то простое как это, Вы могли сделать это в вызове Ajax для создания этого uber хороший..

ПОЛУЧИТЬ запрос отформатирован следующим образом

http://www.mysite.com/vote.php?image=123&vote=up

или POST (этот пример с помощью jQuery)

$.post("http://www.mysite.com/vote.php", {image:"123", vote:"up"});

(Принимающий PHP, но независимо от того, что применяется),

-3
ответ дан 2 December 2019 в 01:21
поделиться

API REST, как предполагается, представляют существительные, таким образом, я думаю, что у Вас есть первая корректная часть: единственное изображение представлено единственным URL (например. http://www.mysite.com/images/123123). Я не уверен прикрепление в /up_vote и /down_vote is способ пойти все же.

http://www.mysite.com/images/123123 объект, и Вы хотите изменить это, не некоторый другой URL (если Вы не делали http://www.mysite.com/votes/images/123123). Я думаю, что Вы должны просто POST к http://www.mysite.com/images/123123. Это делает, ПОЛУЧАЮТ запросы, по сути неразрушающие, так как это просто получает изображение, сохраняет УСПОКОИТЕЛЬНЫЙ дизайн и содержит Ваши URL в чистоте.

3
ответ дан 2 December 2019 в 01:21
поделиться

Если бы Вы работаете с направляющими, я пошел бы для этого получать-URL:

http://www.mysite.com/images/123123/up_vote

и

http://www.mysite.com/images/123123/down_vote

1. Определите действия "up_vote" и "down_vote" в Вашем контроллере Изображений и имейте его, увеличивают или уменьшают значение голосования Вашего объекта модели изображения.

2. Установите следующий маршрут в config/routes.rb:

map.resources :images, :member => { :up_vote => :get, :down_vote => :get }

... и Вы сделаны (более или менее ;-)).

-1
ответ дан 2 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: