如何为用户添加自定义路线

达斯·沃德

我创建了一个books包含书籍内容类型。馆藏中的每一本书都属于一个用户(由Strapi提供的用户内容类型)。

我想返回/users/me/books端点上经过身份验证的用户拥有的书籍的列表在哪里可以添加此路由和处理程序,因为存在/api/books包含与路由,控制器等相关的书籍的目录,但没有/api/users目录。

ho

您可以使用扩展系统来扩展或覆盖。

extensions/users-permissions/controllers

只需将要扩展或覆盖的控制器添加为.js文件,如下所示:

因此,要覆盖下面的me端点,User.js只需再次定义该方法:

'use strict';
module.exports = {
  //Override me
  async me(ctx) {
      //do your thing
  }
};

扩展而不是覆盖意味着添加另一个端点,因此您需要定义它,添加路由并为其设置权限。route.js文件应在以下位置创建:

extensions/users-permissions/config/routes.json

像这样:

{
    "routes": [
    {
      "method": "GET",
      "path": "/users/me/books",
      "handler": "User.getUserBooks",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "description",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "find"
        }
      }
    }
}

这次控制器(与开始位置相同):

module.exports = {
    async getUserBooks(ctx) {
      //add logic
    }
}

OP已正确添加:

添加自定义路由和控制器后,必须进入管理面板(以admin身份登录)>“角色和权限”>“用户权限”。在这里,您可以找到新添加的路由,并且必须通过检查将其启用。

原稿(如果需要示例)位于:

/node_modules/strapi-plugin-users-permissions/config/routes.json
/node_modules/strapi-plugin-users-permissions/controllers/User.js

我不认为您应该扩展User控制器,因为这在逻辑上是不正确的您正在尝试获取图书-您应该以相同的方式扩展book api。据我所知aContentType不包含有关其创建者的信息(如果不正确,欢迎教育我)。因此,为了解决该问题,您可以将与ContentType的关系添加到“书”中User然后,我认为您应该使用一个终结点扩展books api,该终结点使用ctx接收到的内容将“所属”图书返回给该用户

另外-看看这个问题

如果您需要更多信息,请发表评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何让用户添加自定义注释?

GSuite Admin SDK>目录API:如何为用户的自定义架构添加值?

如何在自定义蓝图中添加路线?

如何为用户启用自定义域?

如何为自定义标题样式添加阴影?

如何为istio Ingress网关添加自定义端口?

如何为Spring Boot 2添加自定义MeterRegisty

如何为 pwa 添加自定义安装按钮

如何为Android自定义视图添加OnClick事件

如何为自定义chai断言添加typehint?

如何为requestretry添加自定义标头?

如何为@Column(nullable = false)添加自定义消息?

如何为Ember js添加自定义环境?

如何为该脚本添加自定义颜色?

如何为SyntaxNode添加自定义语法注释?

如何为特定行添加自定义clickHandler

如何为项目符号图添加自定义图例

如何为自定义的 nsis 安装程序添加边框

(Redmine)如何为Notes添加自定义字段

如何为自定义XIB单元添加操作按钮?

如何为自定义magento主题添加新字体?

CMake:如何为用户宏添加一个自定义变量,其值取决于构建配置?

如何为特定路线而不是屏幕指定自定义转换(v5)

如何为Firebase身份验证用户设置自定义用户UID?

如何在Ruby on Rails中添加自定义路线,控制器和动作?

如何在Rails中添加一条自定义路线?

如何将自定义路线添加到炼油厂

如何为以我自己的自定义格式保存的每个文件添加自定义缩略图

如何为gvim自定义solarize?