20.8. Output with multipart/form-data
RESTEasy provides a simple API to output multipart/form-data.
package org.jboss.resteasy.plugins.providers.multipart; public class MultipartFormDataOutput extends MultipartOutput { public OutputPart addFormData(String key, Object entity, MediaType mediaType) public OutputPart addFormData(String key, Object entity, GenericType type, MediaType mediaType) public OutputPart addFormData(String key, Object entity, Class type, Type genericType, MediaType mediaType) public Map<String, OutputPart> getFormData() }
To output
multipart/form-data
, create a MultipartFormDataOutput
object and call addFormData()
methods. RESTEasy automatically locates a MessageBodyWriter
to marshal your entity objects. As with MultipartInput
, your marshaling may be sensitive to generic type metadata. In this case, use GenericType
. The example below returns a multipart/form-data
format to a calling client. The parts are JAXB-annotated Customer
objects, which will be marshaled into application/xml
.
@Path("/form") public class MyService { @GET @Produces("multipart/form-data") public MultipartFormDataOutput get() { MultipartFormDataOutput output = new MultipartFormDataOutput(); output.addPart("bill", new Customer("bill"), MediaType.APPLICATION_XML_TYPE); output.addPart("monica", new Customer("monica"), MediaType.APPLICATION_XML_TYPE); return output; }