boss 说了一个骚操作。。。

2019-12-05 21:18:32 +08:00
 jaylee4869

前端传不同的类名(比如 com.xxx.UserService ),后端拿到这个名字反射调用它的方法,实现一个 api 动态配置。。。

14727 次点击
所在节点    Java
75 条回复
hcymk2
2019-12-05 21:28:44 +08:00
DWR
chengyiqun
2019-12-05 21:54:21 +08:00
这个不够安全, 应该加点限制, 我们公司有类似的, 通过传入不同的 URL 资源地址, 然后解析后查询配置表, 然后反射 dubbo 调用. 真的有类似的. 完全可以实现.
注意, 前台只传标识, 类名啥的还是方自己版本的配置表里.
eason1874
2019-12-05 22:01:52 +08:00
Java 咋样不了解,我接触很多 PHP 程序都有类似操作。每个 API 是一个独立的类文件,类是根据变量名动态加载的,而变量名则是其他地方传入或者前端传入,加一个 API 的时候加一个类文件就可以了,删一个 API 的时候也是删那个类文件或者改名就可以了。
t123yh
2019-12-05 22:02:30 +08:00
如果传送了具有危险的命令,怎么办呢
heyjei
2019-12-05 22:04:21 +08:00
@t123yh 白名单啊
snw
2019-12-05 22:11:44 +08:00
Linux 上那个 Snapcraft 好像也有类似的骚操作,各种包的命令文件都软链指向同一个可执行文件,但 snap 知道你要运行哪个。
CODEWEA
2019-12-05 22:12:59 +08:00
很正常呀,以前的 php 路由不就是这样吗 c=控制器 m=方法
xupefei
2019-12-05 22:14:52 +08:00
@snw 还有 busybox
learnshare
2019-12-05 22:36:09 +08:00
这么写 API 的也见过,处理得当的话,或许没太大区别
superrichman
2019-12-05 22:36:57 +08:00
这种设计我觉得后面肯定会出安全问题
ClericPy
2019-12-05 22:47:19 +08:00
就喜欢看这些骚操作哈哈

以前用 python 也干过类似的事情, 确实方便, 一个 route 让我接了几十个 utils..... 而且也方便一句 /doc 当场看文档, 至于安全问题, 做了限权和 slots, 问题不太大

不过后来就不这么折腾了, 看 doc 也用 swagger
dremy
2019-12-05 22:49:48 +08:00
文件系统即路由,没毛病呀
luozic
2019-12-05 22:52:32 +08:00
模型最好统一,这里骚了,别的地方继续 mvc 或者 mvvm,之后维护你就知道啥叫蛋疼了。
areless
2019-12-05 22:55:09 +08:00
可以的。加密一下。MySQL 开 ssl,前端直接写 sql 都可以的。node 的 ORM 改造下直接在浏览器端使用,很方便的。
darkforest8848
2019-12-05 23:03:58 +08:00
以前我们的项目就是这么设计的
Samuelcc
2019-12-05 23:45:21 +08:00
这种维护成本是不是有点高,重构火葬场
Evrins
2019-12-06 00:45:38 +08:00
Play framework 1 就是这样的
Kaiv2
2019-12-06 08:35:11 +08:00
建议使用 spring MVC
ershisi
2019-12-06 08:51:57 +08:00
算不上骚操作,只要权限控制没问题就没啥毛病的吧
fengpan567
2019-12-06 08:53:25 +08:00
之前做了个定时任务,就是这么搞的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX