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