Как настроить REST API JBPM для возврата даты-времени в JSON в качестве значения вместо объекта JSON со свойством "java .util.Date"? - PullRequest
0 голосов
/ 18 апреля 2020

Эта проблема более специфична c для Process Server (или K IE Server до JBPM / RHPAM 7).

Документ Swagger Process Server (http://${host}:${port}/kie-server/docs) показывает, что многие JSON даты: string($date-time).

Однако возвращаемая полезная нагрузка JSON имеет следующий формат:

"timestamp": {
    "java.util.Date": 1540584717937
}

Фактически, документация jBPM во многих REST Примеры ответов также показывают даты в этой форме выше.

Существует ли какая-либо конфигурация, которая позволит сериализовать даты в другие форматы дат в виде значения (строка, ISO 8601 и т. д. c.) вместо этого нечетный JSON объект, в котором в поле JSON с именем "java .util.Date" установлено значение в миллисекундах для Java s java.util.Date объекта?

"Be консервативный (строгий) в том, что вы делаете, будьте либеральным (снисходительным) в том, что вы принимаете от других, " утверждает принцип робастности. Но способ, которым дата сериализуется из jBPM, создает ненужные проблемы для пользователей [не Java] для анализа значения даты. Некоторое количество последующей обработки необходимо на стороне клиента, если ее нельзя будет повторно выполнить на стороне сервера.

Любая помощь или понимание того, как эта конфигурация может быть достигнута, очень ценится!

1 Ответ

0 голосов
/ 18 апреля 2020

Чтобы получить дату в удобочитаемом формате, например «гггг-ММ-дд ЧЧ: мм», необходимо добавить @JsonFormat (shape = JsonFormat.Shape.STRING, pattern = "гггг-ММ-дд ЧЧ: мм") аннотация к полю в классе pojo, например

import com.fasterxml.jackson.annotation.JsonFormat;
. .  .. 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")
private Date effectiveDate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...