REST против SOAP для большого объема данных с помощью Security - PullRequest
3 голосов
/ 21 сентября 2011

У меня есть требование, когда у меня есть большой объем данных (в виде PDF, изображений, документов DOC) на сервере, который будет распространен среди многих пользователей. Я хочу получить эти файлы с помощью веб-сервисов вместе с их метаданными. Я буду получать файлы в байтах. Я запутался в том, какой тип веб-службы будет более безопасным, легко анализируемым? Какой из них легко реализовать на клиенте iPhone?

Я знаю, что REST проще, но я где-то читал, что он не подходит для распределенной среды. В то же время SOAP слишком тяжел для мобильной платформы.

Я искал много сайтов, описывающих, как REST проще и как SOAP безопасен. Я запутался, какой использовать? Также о типе ответа, который будет лучше JSON или XML для моего требования?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Для ваших требований JSON будет лучшим ответом, потому что он намного меньше XML (более чем на 50% меньше во многих тестах). Вы можете использовать SBJSON (https://github.com/stig/json-framework/) для удобного анализа в iOS.

Что касается REST или SOAP, последний действительно очень тяжел для мобильной платформы и не так прост в реализации. SOAP также требует XML и не может использоваться с JSON. Принимая во внимание, что с REST вы можете использовать JSON или XML и легко реализовать его на iOS с RESTKit (http://restkit.org/), для безопасности вы можете использовать SSL-соединение с HTTPS и подписанный сертификат.

Единственным преимуществом SOAP является WSDL (спецификация Webservice), которая сделала ваши веб-сервисы действительно сильными.

0 голосов
/ 23 октября 2011

Если у вас нет особых требований для извлечения данных файла и метаданных в одном и том же ответе, вы можете рассмотреть возможность удаления файла с помощью обычного HTTP GET.Вы можете получить достойную защиту с помощью HTTPS и Basic Auth или клиентских сертификатов.Затем я бы включил заголовок Link, указывающий на метаданные для вашего файла, например:

Link: </path/to/metadata>;rel=meta

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...