Не работают get запросы к одной таблице (проект 509100)

Добрый день!

В проекте есть модель entry, в таблице несколько тестовых записей. Запросы к таблице выполняются (создание-удаление-редактирование строк) кроме get запросов. Любой запрос к show_list_of_entries и к show_entry возвращает успех но 0 записей.


Пробовали пересоздать связанный с эндпоинтом БП, пересоздать таблицу, пока не помогло.
Апдейт
Скрин БП, привязанный к эндпоинту show_list_of_entries

Также почему-то на все авторизованные запросы в сваггере (любой эндпоинт) возвращается 401 unauthorized.

Апдейт: настройки auth эндпоинта такие:


настройки security:

По первому вопросу - нужно смотреть сам БП, вероятно в нем что-то неправильно.
В идеале еще по логам посмотреть какой запрос уходит к SQL при выполнении блока Search, попробовать запустить его вручную.

По второму - нужно проверить настройки ендпойнта. Как вариант - включено Enable Signatures в Security

@Slava Когда тестируете сваггер вы в нем же и авторизовывались чтобы получить авторизационный токен и ввести его?

Добрый день!

Проблемы так и не решились, 2 БП все еще возвращает успех и 0 записей одновременно, в сваггере авторизация возвращает 401.

Пожалуйста, помогите определить, в чем именно проблемы?

@uliana @Slava Здравствуйте, чтобы успешно авторизоваться в сваггере необходимо выполнить запрос POST /v2/auth/. В Request body укажите login и password, обязательно удалите поле “public_key”: “string”.

{
  "login": "***",
  "password": "***"
}

Ответ должен быть 200

{
  "success": true,
  "error": null,
  "profile": {
    "id": 1,
    "created_at": "***",
    "confirmed": true,
    "last_name": "***",
    "active": true,
    "first_name": "***",
    "password": "",
    "login": "***",
    "groups": [
      1
    ]
  },
  "token": "***"
}

Далее значение токена “token”: “*****” вставляем в AuthBearer вашего сваггера. Это должно помочь с проблемой авторизации.

Проблема с БП, скорее всего, связана с отсутствием пользователя в блоке Auth: Get current user. В данной конфигурации БП Вы должны быть уверены, что пользователь точно авторизован. Убедитесь, что пользователь успешно авторизован.
Одним из самых простых вариантов является добавление блока Write to Log после Auth: Get current user. Если в логах будет null или ошибка, это знак, что нужно изменить логику. Добавьте условие, которое будет проверять наличие авторизации.

Добрый вечер, спасибо большое за ответ! Я попробовала авторизоваться так, как вы подсказали и добавила запись в логи в БП, однако ничего не изменилось, все та же ошибка 200 - выдает успех и 0 записей.

@uliana Судя по скриншоту у вас все нормально с авторизацией: она либо отключена на этом эндпоинте, либо токен верный и все хорошо.

Код ответа 200 означает что запрос прошел успешно. Если есть проблемы с авторизацией или нехваткой прав, то вы получите код ответа 401 или 403.

Я уверен что у вас есть проблемы с логикой БП, например:

  • Если отключена авторизация на эндпоинте, то блок Get Current User не будет отдавать данные.

Еще раз спасибо за ответ!

Попробовала подключить авторизацию на эндпоинтах для обоих процессов - исход вот такой.

Другие процессы на редактирование БД отрабатывают без авторизации, т.е удалять, добавлять и редактировать можно, а просто извлечение данных не работает

@Slava @uliana
При получении данных вы фильтруете по пользователю. Убедитесь, что у ваших записей есть связь с соответствующим соответствующим пользователем по которому фильтруете записи.

Для записи сделали проверку id соответствующего пользователя, все равно выводит 0 и код 200

@uliana Здравствуйте, убедитесь, что пользователь (User) приходит в блоке Auth: Get current user (см. скрин).

Если в этом блоке нет данных о пользователе, дальнейшие действия будут бессмысленны.

Еще раз добрый вечер! Решили проблему опытным путем - проставили NULL дату удаления у записей в БД, теперь запросы корректно отрабатывают

Если у записей есть дата удаления (deleted_at), то они считаются soft-deleted и выборках не участвуют. Так и задумано. Вы задали дату удаления при создании записей или потом отдельно через SoftDelete?