selfmade ([personal profile] selfmade) wrote2007-10-10 10:21 am

REST vs RPC

Исходная ссылка.

Может я чего не понимаю, но в чём принципиальное отличие REST от RPC? И там и там нужно послать некий запрос, получить некий ответ. Ответ можно закэшировать. Метод в RPC эквивалентен части названия ресурса в REST. Параметр метода в RPC - в REST это либо часть названия ресурса, либо параметр запроса POST/GET. Ответы как в RPC, так и в REST недетерминированы.

[identity profile] selfmade.livejournal.com 2007-10-11 01:41 am (UTC)(link)
Читал уже. Именно после прочтения вопрос и возник. Про какие-то глаголы и существительные рассуждают. Вот в Java одни глагоды по жизни были до 1.5 (methods), в C# - прилагательные/существительные (properties). Те же яйца только в профиль.

[identity profile] 109.livejournal.com 2007-10-11 04:58 am (UTC)(link)
какие ещё прилагательные 8-О :)

[identity profile] selfmade.livejournal.com 2007-10-11 05:01 am (UTC)(link)
Которые к объекту прилагаются, ясен пень. :) Типа Connection.Alive

[identity profile] 109.livejournal.com 2007-10-11 05:06 am (UTC)(link)
IsAlive оно должно называться, так что никаких прилагательных :)

[identity profile] selfmade.livejournal.com 2007-10-11 05:13 am (UTC)(link)
Компьютеру пофиг как оно называется. В java оно вообще было бы getIsAlive(). Мне интересно, есть ли какая-то принципиальная разница между глаголами в RPC и существительными в REST. Или REST придумали просто чтобы новые бабки срубить.

[identity profile] 109.livejournal.com 2007-10-11 06:01 am (UTC)(link)
то-то.

ну, например, разница в том, что добраться до любого ресурса можно декларативным путём/через ури, вместо

factory = getFactory();
param = getParam();
object = factory.getObject(param);
detailObject = object.getDetailObject();

[identity profile] selfmade.livejournal.com 2007-10-11 06:09 am (UTC)(link)
getFactory().getObject(getParam()).getDetailObject()

что-то типа http://bla/factory/param/detailObject

И то и другое выполняется на сервере.

[identity profile] 109.livejournal.com 2007-10-11 09:18 am (UTC)(link)
да, но синтаксис!

[identity profile] object.livejournal.com 2007-10-11 03:39 pm (UTC)(link)
Не совсем. Существенным в REST является использование URI для выдачи ресурсов. Т.е. в принципе любая read-only операция должна выдаваться через HTTP GET по URI (URL). Это принципиально отличается от RPC, где URI вообще не при чем, а все делается через методы. Весь REST сидит на GET/POST/PUT/(DELETE).