2009-09-03 2 views
4

Извините за то, что вы 100000 человек задали тот же вопрос. Но я думаю, что мой случай немного отличителен.REST/JSON/XML-RPC/SOAP

Приложение состоит в том, что мы хотели бы иметь клиент телефона Android на 3g и легкий сервер веб-сервисов python.

Телефон будет выполнять большую часть работы и делать много загрузок, изображений, GPS и т. Д. И т. Д. Сервер просто должен ответить «нормально» на каждую загрузку.

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

Все ли они на одном уровне? Или может JSON быть RESTful и т. Д.? Итак, как описано, ключ здесь загружается. Все ли входные данные для транзакции REST должны быть в URI? т.е. http://www.server.com/upload/0x81d058f82ac13. Звук XML-RPC и SOAP довольно приличный от Googling.

ответ

7

ОТДЫХ задает общую семантику и понятия. Транспорт и кодировки зависят от вас. Они были первоначально сформулированы на XML, но JSON полностью применим.

XML-RPC/SOAP - это разные механизмы, но в основном одни и те же идеи: как сопоставить API OO поверх XML и HTTP. ИМХО, они отвратительны от дизайна. Я был так рад, когда узнал о REST. В вашем случае, я уверен, что много слоев будет означать гораздо больший спрос на процессор.

Я бы сказал, что нужно использовать REST, используя JSON для кодирования; но если ваши требования действительно такие простые, как просто загрузка, вы можете использовать просто HTTP (который может быть RESTful в дизайне, даже без добавления какой-либо конкретной библиотеки)

+4

Обычный HTTP-протокол должен работать. Заголовок HTTP-кода ответа может использоваться для указания успеха или сбоя. Somthing в 2xx диапазоне для успеха, и 4xx для отказа. См. Http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – MadCoder

+3

REST - простой старый HTTP. Это подход к назначению семантики HTTP-маршрутам GET, POST и URI. –

+0

Я не понимаю, как REST проще, чем XML-RPC. Если я получаю это право, JSON сообщение будет что-то вроде http://server.com/class1 HTTP POST { "бла-бла:", "вещи JSON"} и XML-RPC пост будет быть http://server.com HTTP POST class1 материал Так, помимо того, что XML является немного толще, чем JSON, есть что-нибудь еще в корне отличается от них? – xster