Я использую https://github.com/rs/rest-layer для создания своих CRUDL API.
В моей базе данных postgres есть поле идентификатора (целое число, автоинкремент). В моей схеме идентификатор определен следующим образом:
"id": {
Required: false,
ReadOnly: true,
//OnInit: func(ctx context.Context, value interface{}) interface{} {
// .....
//},
Filterable: true,
Sortable: true,
Validator: &schema.Integer{
Boundaries: &schema.Boundaries{
Min: 1.0,
Max: math.Inf(0),
},
},
},
Сейчас мне нужно реализовать функцию OnInit
, которая предоставляет действительное целочисленное значение для ID
, в противном случае создание объекта завершится неудачей.
Поскольку база данных генерирует id
(это автоинкремент), я бы хотел полностью исключить поле id
из POST-запросов.
Как я могу это сделать? Возможно ли даже с этой структурой?
Если нет, то есть ли способ получить новый идентификатор без фактического вызова в БД и получить наибольшее значение идентификатора?