Просто чтобы добавить ресурс и сложность в обсуждение. Поскольку вы выполняете PUT / POST и PATCH для хранения новых ресурсов и их изменения, следует помнить, что передача контента является точным представлением контента, который хранится и который получен с помощью операции GET.
Многочастное сообщение часто используется как спаситель, но по причине простоты и для более сложных задач я предпочитаю выдавать контент целиком. Это самоочевидно и просто.
И, конечно, JSON - это что-то серьезное, но в конце концов, сам JSON многословен. А накладные расходы на отображение в BASE64 - это путь к малым.
Для правильного использования многокомпонентных сообщений необходимо либо демонтировать объект для отправки, использовать путь свойства в качестве имени параметра для автоматического комбинирования, либо создать другой протокол / формат для простого выражения полезной нагрузки.
Также нравится подход BSON, он не так широко и легко поддерживается, как хотелось бы.
По сути, мы просто что-то здесь упускаем, но встраивание двоичных данных в base64 хорошо известно, и есть путь, если вы действительно не определили необходимость выполнения реальной двоичной передачи (что вряд ли имеет место).