У меня есть хранилище данных с API-интерфейсом REST, использующим JAX-RS / Jersey / Jackson. Я должен поддерживать несколько форматов загрузки и выгрузки данных в этом хранилище, и для загрузки есть одна конечная точка API:
@POST
@Path("/alignment")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON + "; charset=utf-8")
public Response importAlignment(@DefaultValue("") @FormDataParam("name") String name,
@FormDataParam("userId") String userId,
@FormDataParam("filetype") String filetype,
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) { ... }
Аргумент filetype
говорит мне, чего ожидать в uploadedInputStream
и может ссылаться на несколько разных форматов - XML, CSV, XLSX, а также JSON (на самом деле, два разных возможных формата JSON! Не спрашивайте.) Хранилище уже позволяет пользователю загружать данные в одном из этих JSON форматов; этот метод возвращает Response
, объектом которого является AlignmentModel
. Я хотел бы иметь возможность повторно загрузить загруженные данные JSON, но для этого мне нужно сделать ... что-то ... в рамках метода importAlignment
, который приведет к отмене маршалинга JSON в uploadedInputStream
назад. в AlignmentModel
. Как мне это сделать?