Хотя у меня нет опыта работы с WCF, я могу сказать вам, что безболезненный способ обработки POSTing / PUTting двоичных данных в REST API (особенно с сочетанием текста и двоичных файлов) заключается в кодировании двоичных данных как base64 и относитесь к ним так же, как к любым другим текстовым данным в вашем API.
Да, есть небольшие издержки с base64 с точки зрения размера и дополнительного процесса кодирования / декодирования, однако base64 обычно только 1,37x больше двоичного.
Я считаю, что во многих случаях издержки стоит избегать проблем, которые могут быть связаны с двоичными данными в API, особенно когда вам нужно POST / PUT сочетание двоичных и текстовых данных. Если вы хотите поместить POST-изображение и дополнительные мета-текстовые данные, вы можете легко сделать это с помощью строки json («image» будет вашим изображением в кодировке base64) ...
{
"image":"aGVsbG8...gd29ybGQ=",
"user" : 1234,
"sub_title": "A picture from my trip to Pittsburgh"
}
Это ни в коем случае не лучшее решение для всех случаев, и, как я уже сказал, я не эксперт WCF, но в общем случае это, безусловно, что-то, что нужно сделать, чтобы облегчить вашу жизнь.