Я новичок в strapi и backend в целом.
Я создал тип контента под названием post, и он доступен по этому маршруту /posts/:id
по умолчанию. Однако я также хочу, чтобы этот пост был доступен по этому маршруту /posts/:slug
. Я попытался добавить новый маршрут в файл routes.json
, но когда я посещаю маршрут, он возвращает ошибку 404.
Как мне этого добиться?
РЕДАКТИРОВАТЬ:
Мой routes.json
файл выглядит так:
{
"routes": [{
"method": "GET",
"path": "/posts",
"handler": "Post.find",
"config": {
"policies": []
}
},
{
"method": "GET",
"path": "/posts/count",
"handler": "Post.count",
"config": {
"policies": []
}
},
{
"method": "GET",
"path": "/posts/:id",
"handler": "Post.findOne",
"config": {
"policies": []
}
},
{
"method": "GET",
"path": "/posts/:slug",
"handler": "Post.findOne",
"config": {
"policies": []
}
},
{
"method": "POST",
"path": "/posts",
"handler": "Post.create",
"config": {
"policies": []
}
},
{
"method": "PUT",
"path": "/posts/:id",
"handler": "Post.update",
"config": {
"policies": []
}
},
{
"method": "DELETE",
"path": "/posts/:id",
"handler": "Post.delete",
"config": {
"policies": []
}
}
]
}
routes.json
? - person nopassport1   schedule 14.01.2020slug
. Вам нужно будет создать еще один обработчик. Кроме того, зачем вам копировать функциональность существующего маршрута? Какой у вас вариант использования для этого? - person nopassport1   schedule 14.01.2020http://localhost:1337/posts/perfect-simplicity
perfect-simplicity
- это слаг определенного сообщения. Я могу получить тот же пост, когда обращусь к нему с URL-адресом идентификатора, подобным этому -http://localhost:1337/posts/2
- person aycebrent   schedule 14.01.2020Post.findOne
не понимает, что означаетperfect-simplicity
, поскольку он пытается найти сообщение с помощью уникального идентификатора, предоставленного strapi при его создании. Тем не менее, даже если вы создали новый обработчик для удовлетворения своих требований, это не будет лучшей практикой, поскольку (я предполагаю) вашslug
не является уникальным идентификатором (многие сообщения могут быть созданы с одним и тем жеslug
). Если вы хотите создать новую конечную точку, вам также необходимо создать для нее обработчик. - person nopassport1   schedule 14.01.2020