Что вы часто видите, так это то, что у вас есть ресурс для обработки больших двоичных объектов и один для метаданных - Facebook и Twitter делают это для изображений и видео.
Например, /files
будет принимать ваши данные BLOB и возвращать идентификатор для загруженных данных BLOB.
Метаданные будут отправлены на другой ресурс с именем /posts
и могут потреблять application/json
.
В приложении, в котором я сейчас работаю, возникла та же проблема, и мы решили использовать одну конечную точку, потребляющую multipart/form-data
- здесь вы можете отправлять большие двоичные объекты и метаданные в разных границах и иметь все в одном ресурсе.
Другим способом было бы base64
кодировать большие двоичные объекты, что приведет к накладным расходам в 33%, и поэтому я не рекомендую его. Но с base64 вы можете выполнять всю свою работу в одном application/json
ресурсе.