You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi4无关联内容类型的自定义API端点返回404错误求助

解决Strapi无内容类型自定义API端点404问题

以下是针对你代码问题的分步修复方案:

1. 修正路由配置

Strapi v4中,路由文件需确保结构正确,避免加载异常导致404。可以调整为以下两种标准写法之一:

写法一:直接定义完整路径

// src/api/lpv-banner-data/routes/lpv-banner-data.js
module.exports = {
  routes: [
    {
      method: 'GET',
      path: '/lpv-banner-data',
      handler: 'lpv-banner-data.fetchData',
      config: {
        policies: [],
        middlewares: [],
        auth: false, // 临时关闭权限验证快速测试,确认后再配置角色权限
      },
    },
  ],
};

写法二:使用prefix配置

module.exports = {
  prefix: '/lpv-banner-data',
  routes: [
    {
      method: 'GET',
      path: '/',
      handler: 'lpv-banner-data.fetchData',
      config: {
        policies: [],
        middlewares: [],
        auth: false,
      },
    },
  ],
};

2. 修复控制器语法错误

控制器中ctx.body("data", data)是错误写法,ctx.body是赋值属性而非函数,正确写法如下:

// src/api/lpv-banner-data/controllers/lpv-banner-data.js
'use strict';

module.exports = {
  async fetchData(ctx) {
    try {
      const data = await strapi.service("api::lpv-banner-data.lpv-banner-data").fetchData();
      console.log(data);
      ctx.body = { data }; // 直接赋值响应体
      ctx.status = 200; // 显式设置成功状态码
    } catch (err) {
      ctx.badRequest("Post report controller error", { error: err.message });
    }
  }
};

3. 修复服务逻辑错误

服务代码存在两处明显问题:未定义的getPropertyTypes、多余的.json()调用(axios已自动解析响应),修复后代码:

// src/api/lpv-banner-data/services/lpv-banner-data.js
'use strict';
const axios = require('axios');

module.exports = {
  async fetchData() {
    try {
      const response = await axios.get('https://api-endpoint'); // 替换为真实外部API地址
      return response.data; // 直接返回外部API数据
    } catch (err) {
      throw new Error(`Failed to fetch external data: ${err.message}`); // 抛出错误交由控制器统一处理
    }
  }
};

4. 后续验证步骤

  • 重启Strapi服务器:修改路由、控制器或服务后必须重启,否则新配置不会生效
  • 确认访问路径:正确路径应为http://localhost:1337/api/lpv-banner-data(默认端口)
  • 配置权限:测试通过后,在Strapi后台设置→角色与权限中,给目标角色开启lpv-banner-data的fetchData权限

内容的提问来源于stack exchange,提问作者jamjam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:42:19