Affects: 5.13.15

``` public PartBuilder part(String name, Object part, @Nullable MediaType contentType) { Assert.hasLength(name, "'name' must not be empty");

This is wrong and makes no sense for contents like `multipart/mixed`
Field names are only relevant for `multipart/form-data`

c.f. https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html

**Comment From: poutsma**

>This is wrong and makes no sense for contents like multipart/mixed

Opening with a snarky comment like that does not help in getting attention drawn to your issue. If anything, the reverse is true.

`MultipartBodyBuilder` was not designed to be used for `multipart/mixed`, but for `multipart/form-data` where each part gets a `Content-Disposition` header with the part name. Given this context, I would argue that the method signature is correct and makes a lot of sense.

I see that the Javadoc of `MultipartBodyBuilder` can be improved to make this limitation clearer, and I will do so.

**Comment From: jakub-bochenski**

Oh, nice, so WebClient now officially doesn't support `multipart/mixed`

**Comment From: rstoyanchev**

There is some additional context on this. 

Our multipart support has evolved historically from multipart form data requests, so it is rooted in that. We added "multipart/mixed" and "multipart/related" as supported media types to the codecs and message converters with #23159 and #23209, but in retrospect that was inadequate. 

In any case, this would be a deeper change, most likely not involving `MultipartBodyBuilder` at all, since that prepares a `MultiValueMap`, and hence assumes parts have names. 

It would help if you provide a bit more context around your case. Do you need both client and server support, or do you make requests to a 3rd party API? Considering the Servlet API also assumes parts have names, there can be more challenges.

**Comment From: jakub-bochenski**

I'm using a 3rd party API that is receiving and responding with multipart/mixed. So I'm interested just in client support.

I'm able to send multipart/mixed using `MultiValueMap` just by setting all the names to empty string.
But `MultiValueMap` doesn't support "reactive" elements the way `MultipartBodyBuilder` does.

As for reading the response it seems RestTemplate can only write multipart/mixed, not read it.
For WebClient the best I could come up with is 

.retrieve() .toEntityFlux((inputMessage, context) -> partReader .read(ResolvableType.forType(byte[].class), inputMessage, context)) ```

but it's inconvenient to the have to deal with raw bytes from DataBuffer for each part.

Also I don't see how would it handle reading multipart nested in multipart --it's a real-world scenario

Comment From: poutsma

I have created https://github.com/spring-projects/spring-framework/issues/30230 to see how much interest there is in the community for Spring to have proper multipart/mixed support.