Подтвердить что ты не робот

Опубликовать двоичные данные в приложении RESTful

Я работаю над веб-приложением RESTful (Django + Piston). Запрос POST отправляет данные, закодированные Json, в веб-приложение. Это отлично работает для всех моих таблиц только для текстовых таблиц, но у меня также есть таблица, в которой хранятся текстовые и двоичные файлы. Каков наилучший способ отправки текстовых и двоичных данных в приложение RESTful?

4b9b3361

Ответ 1

Вы можете либо закодировать Base64, либо отправить его в виде строки в сообщении JSON, либо вы можете отправить POST или PUT в качестве отдельного ресурса и ссылаться на него по идентификатору или URL-адресу в сообщении JSON. Последний подход является своего рода внеполосным каналом данных, который довольно распространен в протоколах на основе XML (например, голосовой чат с использованием XMPP).

Вы даже можете легко поддерживать гибридную модель, в которой:

  • Маленькое изображение отправляется как {"base64":"OGZmNjJmOWNhYzFlODE0NDBjYmYzNjhjYz..."};
  • Большое изображение загружается как ссылка, {"ref":"http://myserver.com/bits/E4304205-29B7-48EE-A359-74250E19EFC4"}.

Чтобы избежать двойного POST, необходимого для двоичных файлов с внешней ссылкой, вы можете создать какой-то протокол, который позволяет смешивать JSON и двоичные файлы в одной передаче. Но прирост усиления вряд ли будет адекватно вознаграждать этот уровень усилий.

Наконец, с точки зрения дизайна придерживайтесь простого решения, пока оно не станет проблемой.