Страпейские маршруты возврат 404 Не найдено
У меня проблема, когда все маршруты в моем API возвращаются 404 Not found
, Я следовал за разделом " Извлечь из Docker Hub " на страппи-докере.
Я не только запустил изображения, но и создал новый тип контента под названием post
содержащий три поля. Если я попробую GET /post
(чтобы добавить все сообщения) Я получаю ошибку несанкционированного ответа. Это ожидается на данном этапе. После того, как я проверил роли и разрешения, чтобы разрешить роли Public использовать маршруты find и findOne, я вместо этого получаю сообщение об ошибке 404 Not found, даже если данные были добавлены.
Сервер разработчика не использует префикс.
post
маршруты для поиска и поиска выглядят следующим образом:
{
"routes": [
{
"method": "GET",
"path": "/post",
"handler": "Post.find",
"config": {
"policies": []
}
},
{
"method": "GET",
"path": "/post/:_id",
"handler": "Post.findOne",
"config": {
"policies": []
}
}
}
В интерфейсе strapi не так много опций, чтобы возиться, поэтому я не уверен, что еще можно попробовать. Я попробовал несколько других установок strapi. Не уверен, что это могло все испортить, но я смутно помню, как раньше пробовал strapi / strapi-docker и заставлял его работать.
3 ответа
Я сталкивался с этой проблемой много раз, и обычно самый простой ответ:
Вы публиковали какие-нибудь свои сообщения?
Strapi имеет подсистему публикации, которая обычно включается при создании любой коллекции, одного типа или компонента.
Поэтому, когда вы создаете любой контент любого созданного типа, данные сохраняются как черновики и не являются общедоступными.
Вот мой тип коллекции ссылок. Сохраняется, но не публикуется.
Поэтому, если вы пытаетесь протестировать конечную точку, но у вас есть только одна запись данных, и она настроена на черновик, данные отображаться не будут.
Нет данных!
В случае единственного типа, который не опубликован
Это вернет 404!
Опубликуйте и, вуаля ...
Это может быть одной из причин, по которой strapi отправляет вам 404 или только пустой массив!
У меня тоже была эта проблема много раз, даже с опубликованным контентом.
Двумя дополнительными причинами могут быть:
- если ваш тип контента - сообщения, попробуйте /posts, а также /api/posts (второй обычно работает для меня
- В разделе «Настройки»> «Роли» (тот, что находится в плагинах «ПОЛЬЗОВАТЕЛИ И РАЗРЕШЕНИЯ») убедитесь, что и авторизованные , и общедоступные роли пользователей имеют доступ к типу контента find и findOne .
Однажды я получил 404, хотя я сделал это для Public ... но потому, что я был в том же браузере, что и мой авторизованный администратор, и мне нужно было также обновить его для Authenticated .
Единственная причина этого - кнопка публикации, и иногда она не работает, если у вас есть запутанный компонент, в котором есть ошибка в одном разделе, но экран не прокручивается до него, поэтому кнопка публикации, похоже, ничего не делает, журналы показывают только запрос на получение и ты начинаешь тянуть себя за волосы...
Не надо, всегда проверяйте страницу при публикации на наличие ошибок, например, отсутствия обязательного поля и т. д., чтобы кнопка публикации работала.