Вы можете использовать панд to_numeric - обязательно добавьте errors=coerce
.
Чтобы быть успокоительными, необходимо возвратить что-то вроде этого
{
"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
То, что прохладно об этом дизайне, - то, что Вы могли голосовать по изображениям, которые даже не находятся на Вашем сайте!
С точки зрения ресурсов изображение является вещью, которая имеет 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 и сервером, и сервер имеет гибкость для изменения всех специфических особенностей, не повреждая клиенты.
Это казалось бы глупым мне к 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, но независимо от того, что применяется),
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 в чистоте.
Если бы Вы работаете с направляющими, я пошел бы для этого получать-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 }
... и Вы сделаны (более или менее ;-)).