We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
比如有一个TestController,内部有两个接口对应两个function
... @route('/api/test/create', { name: '创建test', method: ['post'] }) async create() { return await this.ctx.service.test.create(); } @route('/api/test/update', { name: '更新test', method: ['post'] }) async update() { return await this.ctx.service.test.update(); } ...
使用getRoutes得到的数据是,顺序是update()在create()之前
[ ..., { ..., url: [ '/api/test/update' ], typeGlobalName: 'TestController', functionName: 'update', ... }, { ..., url: [ '/api/test/create' ], typeGlobalName: 'TestController', functionName: 'create', ... }, ... ]
使用getRoutes得到的数据,按照controller文件的书写顺序进行排序。按照这里的例子,就是得到create()在update()之前的接口数据。
在写接口的时候在extInfo中添加索引属性。比较麻烦的是,在添加接口的时候,如果想把后面写的接口提前,就要把之前排序重新写一遍,很麻烦,可以实现目的,但是比较不想用。
使用数字作为functionName。比如async 1()、async 2()...比较尴尬的是,看起来呢,不是很好看...新加接口也得像上一种做法一样重新写排序。也比较不想用。
谢谢
The text was updated successfully, but these errors were encountered:
现在的顺序与路由注册顺序一致,因为 koa-router 在多路由匹配的情况下会使用第一条匹配路由,比如:
class Controller { @route('/:x') b() {} @route('/a') a() {} }
会匹配到 b(),而不是精确匹配,所以注册前在 controller 内部的方法会做一次排序,将参数、通配符后置。
这个的顺序会用来做什么?我再看下怎么解决。
Sorry, something went wrong.
谢谢! 我是用来做角色分配权限的时候,按照接口url来给权限。给前端返回一个可选接口列表数据,以此来做接口权限分配页面。
比如有两组权限(按照controller文件分的组,序号后面代表的是接口名称)
订单组 1.增加订单 /order/create 2.删除订单 /order/delete 3.修改订单 /order/update 4.查看订单 /order/read
用户组 1.增加用户/user/create 2.删除用户/user/delete 3.修改用户/user/update 4.查看用户/user/read
我是用getRoutes()先得到数据,经过一些需求处理了之后返回给前端。前端页面显示可选权限列表的时候,我也想按照这个例子的接口顺序,就是增删改查的顺序。但是用getRoutes()得到的数据,这个顺序就不是很好把握。有可能订单组是删改查增的顺序,用户组是增删改查的顺序。目的是想让这个顺序,能够方便一点的去人为干涉并可控,比如按照书写顺序排序,这样我要改变顺序,就只需要剪切和粘贴controller文件里面的代码就行了。前面也说了我试过两种办法,还是比较麻烦的。我能想到比较方便的做法就是这样,如果有别的思路,也可以说说。
No branches or pull requests
问题描述
比如有一个TestController,内部有两个接口对应两个function
使用getRoutes得到的数据是,顺序是update()在create()之前
想达到的效果
使用getRoutes得到的数据,按照controller文件的书写顺序进行排序。按照这里的例子,就是得到create()在update()之前的接口数据。
已尝试过的方法
在写接口的时候在extInfo中添加索引属性。比较麻烦的是,在添加接口的时候,如果想把后面写的接口提前,就要把之前排序重新写一遍,很麻烦,可以实现目的,但是比较不想用。
使用数字作为functionName。比如async 1()、async 2()...比较尴尬的是,看起来呢,不是很好看...新加接口也得像上一种做法一样重新写排序。也比较不想用。
最后
谢谢
The text was updated successfully, but these errors were encountered: