У меня есть сервер, и мне нужно загружать файлы вместе с некоторыми полями от клиента к серверу. В настоящее время я использую стандартные multipart/form-data.
Однако я обнаружил, что использование multipart/form-data не является идеальным. Объекты на моем сервере могут иметь другие объекты, вложенные в них и, таким образом, представлены как объект JSON с другими встроенными объектами JSON.
Я хотел бы, чтобы клиент начал создавать запросы POST/PUT с использованием представления JSON точно так же, как это ожидалось бы в запросе GET на сервере с помощью REST-ful. Таким образом, мне не нужно сглаживать поля, которые могут быть вложены в пару слоев внутри объекта JSON, чтобы использовать multipart/form-data.
Проблема в том, что JSON не представляет двоичные данные. У многостраничных/форма-данных, похоже, нет возможности представлять поля, вложенные в значения других полей. Но у него гораздо больше возможностей для загрузки файлов.
Я не понимаю, как это сделать. Должен ли я просто загрузить клиент JSON с полями, закодированными в base64, и взять 25% -ный удар? Или должен ли я иметь объект JSON, представляемый как некоторая "переменная json" в запросе Multipart/form-data, и иметь бинарные файлы для загрузки в качестве другой переменной?