Перейти к содержанию

Создание белого списка

Запрос

Тип Метод
POST /value_stores/create_whitelist

Описание: метод создаёт белый список с заданными параметрами.

При создании белого списка также создаются связи с маппингами, указанными в поле white_list_mappings.

Поле values_scheme формируется автоматически на основании white_list_mappings. Для каждого поля устанавливаются:

  • type: string;
  • is_key: true.

Создание выполняется в два этапа:

  1. валидация и создание табличного списка с признаком is_whitelist: true;
  2. валидация и создание связей с маппингами из 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"
}