При написании REST-API на Java PATCH-Endpoint позволяет манипулировать подмножеством полей для данного ресурса.
Для следующего ресурса:
Код: Выделить всё
{
productId: 7,
name: "container",
contactPerson: "peter",
price: 12
}
С помощью PATCH я смогу установить для поля «contactPerson» значение NULL, не затрагивая при этом другие поля, например:
Как я могу реализовать это в экосистеме Java, учитывая, что наиболее важные библиотеки здесь должны иметь полную поддержку:
- Джексон (десериализация JSON)
- Валидатор Hibernate (проверка компонентов)
- Микропрофиль OpenAPI (определение API)
Среди прочего я опробовал Java-Optional, и хотя поначалу казалось, что он работает, это неправильный инструмент для этого, поскольку необязательный параметр не должен содержать NULL- Value, но также должна быть возможность явно установить значение NULL в PATCH (вместо его пропуска).
При использовании таких аннотаций, как @Size(255), @Email и т. д. существует требование, чтобы...
- ...эти проверки должны быть подтверждены валидатором Hibernate, когда поле задано/установлено в PATCH
...эти проверки не должны проверяться, если поле опущено (отсутствует) в PATCH.
Есть REST-PATCH, входящий в состав основных библиотек экосистемы Java, и если да, то каков рекомендуемый способ его поддержки?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -validator