CMIS против отдыха. Какой клиент будет проще реализовать с нуля? - PullRequest
2 голосов
/ 09 августа 2011

Я работаю над проектом Java, который должен загружать файлы, используя либо REST, либо CMIS (доступны оба сервиса).Я совершенно новичок в этих API и хотел бы спросить, какой из них будет проще и проще в реализации.Я не могу использовать внешние библиотеки в проекте, поэтому мне нужно будет внедрить клиент с нуля.

Примечание: единственное требование - загрузка файлов.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 июля 2012

Целью спецификации Content Management Interoperability Services (CMIS) является предоставление набора сервисов для работы с репозиториями с расширенным содержимым. Он предоставляет полную спецификацию для приложений ECM, которая может быть REST или SOAP.

CMIS предоставляет спецификации для операций, которые управляют папками, документами, отношениями и политикой.

Я думаю, что для загрузки используйте cmis, это как убить муху бомбой.

0 голосов
/ 09 августа 2011

Хотя я признаю, что не знаю CMIS, загрузка файлов с помощью REST - это просто классическая загрузка файлов HTTP, где вы интерпретируете имя пути как указание ресурса, который нужно обновить или заменить. Базовое использование REST предполагает использование (HTTP) GET (метод) как «чтение файла», POST как «создание файла при выборе нового имени» (обычно с последующим перенаправлением, чтобы клиент мог узнать, какое имя было выбрано), PUT как «создать файл с заданным именем или заменить содержимое этого файла» и DELETE как «удалить файл». Более того, вам не нужно поддерживать все эти методы; делайте так мало, как вы хотите (но это хорошая идея для поддержки некоторых GET-запросов, даже если просто позволить людям, которые их загрузки работали).

Тем не менее, при реализации вы хотите во всех случаях избегать хранения большей части данных файла в памяти; это не масштабируется. Лучше потратить время на реализацию потоковой передачи, чтобы вам никогда не приходилось буферизовать больше нескольких килобайт. Конечно, вы можете сделать это с помощью REST / HTTP. (Вы могли бы даже сделать это с SOAP, используя MTOM, но это, вероятно, выходит за рамки ...)

...