У меня есть API REST API. Я хочу, чтобы иметь возможность отправить запрос JSON сообщению на сервер с параметрамиREST API, связанный с загрузкой файлов в java
{ name:"abc", description:"test"} .
Наряду с этими параметрами, я также хочу, чтобы отправить файл через мой пост запрос. Я не уверен, как достичь следующих целей:
- Чтобы отправить файл и другие параметры в одном объекте JSON на стороне клиента.
- Получить их на стороне сервера.
Я читал, что MULTIPART_FORM_DATA
может быть использован для этого. Нужна помощь, чтобы определить, как ее использовать.
Мой код сервера
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response create(JSONObject input) {
ObjectMapper mapper = new ObjectMapper();
Simulation config = mapper
.readValue(input.toString(), Simulation.class);
if (!CreateSimulation.isVaild(config))
{
ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.entity("Bad Request: Wrong Parameters");
Response response = builder.build();
throw new WebApplicationException(response);
}
int id = CreateSimulation.create(config);
JSONObject output = new JSONObject();
output.put("simulation-id", id + "");
return Response.ok(output.toString(), MediaType.APPLICATION_JSON).build();
}
Стоит отметить, что этот подход увеличивает размер файла на 30% – xwhyz