Не удается найти запись по ID (404 не найдено), хотя он может найти ВСЕ записи образца данных в Strapi 5.

Вопрос или проблема

  • Версия Strapi: 5.0.2 Community
  • Операционная система: Windows 11 Professional Версия 23H2 (Сборка ОС 22631.4249)
  • База данных: sqlite
  • Версия Node: v20.17.0
  • Версия NPM: 10.8.3
  • Версия Yarn: 1.22.22

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

yarn create strapi

Я опубликовал все статьи и дважды проверил, что разрешения find и findOne предоставлены роли Public для данных автора.

Я использовал Google Chrome для запроса записей авторов.

Я получаю все записи авторов по следующему URL:
http://localhost:1337/api/authors

 {
        "data": [
            {
                "id": 1,
                "documentId": "j32zwfrmo0h7ed5fk51qb1is",
                "name": "Давид Доу",
                "email": "[email protected]",
                "createdAt": "2024-10-03T14:54:43.775Z",
                "updatedAt": "2024-10-03T14:54:43.775Z",
                "publishedAt": "2024-10-03T14:54:43.772Z",
                "locale": null
            },
            {
                "id": 2,
                "documentId": "d7tjdbzbakg83kgnxe7818fi",
                "name": "Сара Бейкер",
                "email": "[email protected]",
                "createdAt": "2024-10-03T14:54:44.657Z",
                "updatedAt": "2024-10-03T14:54:44.657Z",
                "publishedAt": "2024-10-03T14:54:44.652Z",
                "locale": null
            }
        ],
        "meta": {
            "pagination": {
                "page": 1,
                "pageSize": 25,
                "pageCount": 1,
                "total": 2
            }
        }
    }

Однако я не могу получить отдельную запись по следующему URL, и он выдает ошибку 404 не найдено.

http://localhost:1337/api/authors/2

{
    "data": null,
    "error": {
        "status": 404,
        "name": "NotFoundError",
        "message": "Не найдено",
        "details": {}
    }
}

У меня нет кастомизации для этого типа коллекции авторов.

Контроллер коллекции Gift ./src/api/author/controllers/author.ts выглядит следующим образом:

/**
 *  контроллер автора
 */

import { factories } from '@strapi/strapi';

export default factories.createCoreController('api::author.author');

Я пропустил какой-либо шаг?

Попробуйте использовать значение свойства documentId вместо id.

http://localhost:1337/api/authors/d7tjdbzbakg83kgnxe7818fi в вашем случае.

Ответ или решение

Кажется, что ваша проблема связана с тем, что Strapi использует свойство documentId для идентификации записей, и именно это свойство необходимо использовать для доступа к отдельным записям. В вашей ситуации запрос по адресу http://localhost:1337/api/authors/2 возвращает ошибку 404, так как Strapi не может найти запись с указанным идентификатором. Вместо этого, вам следует использовать documentId, который соответствует записи, к которой вы пытаетесь получить доступ.

Попробуйте выполнить запрос по следующему URL-адресу:

http://localhost:1337/api/authors/d7tjdbzbakg83kgnxe7818fi

Где d7tjdbzbakg83kgnxe7818fi — это значение свойства documentId, соответствующее автору с именем "Sarah Baker". Этот запрос должен вернуть нужные вам данные.

Для дальнейшего понимания и решения вашей проблемы, рекомендую также проверить следующие моменты:

  1. Права доступа: Вы уже упомянули, что проверили разрешения на доступ к данным для роли Public. Убедитесь, что разрешения на findOne действительно включены для вашей коллекции Author.

  2. API URL: Убедитесь, что URL-адрес и идентификатор записи введены правильно. Необходимо следить за написанием, включая большие и маленькие буквы.

  3. Логи сервера: Просмотрите логи вашего Strapi-сервера на наличие возможных ошибок или предупреждений, которые могут дать подсказку о том, что может идти не так.

  4. Документация: Проверьте официальную документацию Strapi по использованию REST API, чтобы убедиться, что вы понимаете, как ожидается использовать API.

Если у вас всё ещё возникают проблемы после выполнения этих шагов, возможно, стоит проверить настройки схемы коллекции’ или, если возможно, создать новую коллекцию, чтобы исключить возможные конфликты или проблемы с текущими данными.

Оцените материал
Добавить комментарий

Капча загружается...