Создание белого списка
Запрос
| Тип | Метод |
|---|---|
POST |
/value_stores/create_whitelist |
Описание: метод создаёт белый список с заданными параметрами.
При создании белого списка также создаются связи с маппингами, указанными в поле white_list_mappings.
Поле values_scheme формируется автоматически на основании white_list_mappings. Для каждого поля устанавливаются:
type: string;is_key: true.
Создание выполняется в два этапа:
- валидация и создание табличного списка с признаком
is_whitelist: true; - валидация и создание связей с маппингами из
white_list_mappings.
Если на любом этапе возникает ошибка, все изменения откатываются.
Пример запроса
POST
http://127.0.0.1/cruddy/v2/value_stores/create_whitelist
Тело запроса соответствует структуре KeyValueStoreCreateWhitelist.
Особенности параметров:
| Параметр | Обязательность | Описание |
|---|---|---|
| is_whitelist | Optional | Может иметь значение null или true. Значение false недопустимо |
| white_list_mappings | Required | Список маппингов для создания связей. Поле value_stores_id заполняется автоматически |
Пример тела запроса
{
"<параметр>": "<значение>",
"is_whitelist": true,
"white_list_mappings": [
{
"<параметр>": "<значение>"
}
]
}
Успешный ответ
Статус код: 201 – белый список успешно создан.
Формат: JSON.
Тело ответа соответствует модели KeyValueStore.
Пример ответа
{
"<параметр>": "<значение>"
}
Другие возможные ответы
| Код | Ответ | Описание |
|---|---|---|
400 |
Bad Request |
Ошибка в параметрах или теле запроса |
401 |
can't get user info: |
Невозможно аутентифицировать пользователя |
409 |
Конфликт уникальности | Белый список с таким именем уже существует |
500 |
Internal Server Error |
Ошибка сервера |
Возможные ошибки:
400—"missing uid header"— отсутствует заголовокPgr-User-ID;400—"Pgr-User-Id should be uuid format"— неверный форматPgr-User-ID;400—"Bad Request"— неверный тип параметра запроса либо отсутствует обязательный параметр;400—"can't create vstore table: X column is reserved"— имяXнедопустимо в качестве названия колонки;400—"empty mappings"— полеwhite_list_mappingsне может быть пустым;400—"field 'is_whitelist' cannot be false"— полеis_whitelistне может иметь значениеfalse;400—"field 'X' duplicate"— полеXдублируется в схеме;400—"validate whitelist mapping: ..."— ошибка при валидации объектаwhite_list_mapping;400—"missing mandatory field: mappings_id"— полеmappings_idв элементеwhite_list_mappingsне может быть пустым;400—"mapping '<mapping-id>' duplicate"— указанный маппинг продублирован;400—"mapping '<mapping-id>' not found"— маппинг с указанным ID не найден;401—"can't get user info:"— невозможно аутентифицировать пользователя;409— попытка создать белый список с существующим именем;500—"create table list: ..."— ошибка при создании табличного списка;500—"insert whitelist mappings: ..."— ошибка при создании связи с маппингом;500—"Internal Server Error"— ошибка сервера.
Пример ответа с кодом 400
{
"error": "empty mappings"
}
Пример ответа с кодом 409
{
"error": "request data violates unique constraint"
}
Пример ответа с кодом 500
{
"error": "Internal Server Error"
}