前端 JS ,后端 Java ,使用共享的常量的最佳操作是什么
如果手动同步的话,例如 Java 里面新加了一个常量字符串,然后手动往 JS 代码里面加一个,感觉很麻烦,违反了 DRY 原则。以后在 Java 端改了这个常量,就得去 JS 端改。如果忘了改,就容易出 BUG
1
Mocker1106 237 天前 1
Swagger (OpenAPI) 满足你的需求吗?
在 Java 后端通过编写注释自动生成 Swagger.json ,前端通过 swagger-typescript-api 生成 type-safe 的 http client https://github.com/acacode/swagger-typescript-api |
2
shizhibuyu2023 237 天前
可以考虑卷一个通用配置平台
前端经常改的文案也可以用,让产品自己去改 |
3
drymonfidelia 237 天前 1
弄个 /api/constants?locale=en_US 前端 onInit 的时候加载到 sessionStorage
|
4
07aPzknB16ui9Cp3 237 天前
大厂都有配置中心这种东西,中小企业也可以学习一下
|
5
june4 237 天前
极简办法是用 json 写常量文件,然后写个小脚本生成 java 常量源码文件
|
6
iorilu 237 天前
丢到 redis, 前后端都能访问
|
7
lscho 237 天前
配置中心,前后端都可以拉取
|
8
ccqy66 237 天前 via iPhone
有一种事件是通过 idl ,不过前提是前后端通过 idl 来定义协议
|
9
seth19960929 237 天前
楼上的各位应该是理解出问题了, 是要常量, 而不是要共享配置.
比如新加一个 MAX_SIZE=1000, 多端共享, 配置中心是能共享 1000, 那 MAX_SIZE 不还得写吗 你这个无非就是用一种 DSL 生成就好了, 说起 DSL 就不得不说 阿里云 OpenAPI SDK 你可以去看看 |
10
zjsxwc 237 天前 via Android
方法 1. 在服务端发布版本时,把所有常量与服务端的版本号一起发布,通过接口提供给前端使用。
方法 2. 在编译打包前端代码时,就直接打包进前端代码。 |
11
nkloveni 237 天前
@seth19960929 楼上应该是理解出问题了, 是要共享配置,而不是光要常量,lz 都说了要改配置同步,要不然出 bug 了
|
12
lasuar 237 天前
提供接口:/GetShareVarSetting 给前后端调用,通过配置中心或管理后台修改。
|
13
bianhui 237 天前
前端,后端编译的时候,去配置中心拉取配置文件。
|
14
lovelylain 237 天前 via Android
protobuf enum
|
15
zhy0216 237 天前 via Android
都用 ts
然后 monorepo |
16
unco020511 237 天前
当然是配置中心
|
17
wangtian2020 237 天前
共同编辑个 json 文件呗
|
18
waytodelay 237 天前
数据字典...
|
19
Habyss 237 天前
这不就是几乎每个系统都会有的字典/配置表吗?
|
20
JaysonHope 236 天前
不考虑安全的情况下,我想到简单的方式是写到 cookie 里。
|
21
mikasa1024 235 天前
以前也思考过类似的情况,正文中描述的应该是两个问题
1. 配置自动生成静态文件,因为开发期间需要变量名提示。楼上提到的配置中心、接口、字典表不符合这条要求,因为这些都是运行过程中才知道具体的变量名称 2. 配置变量值同步,这一条的意思是只改一个地方其他端自动同步 第二个问题好处理,但是两个问题结合起来感觉没有什么好的方案 一楼提到的这个东西不错,可以解决 api 中参数返回值的前后端同步 |
22
lizy0329 235 天前
@wuzzispacelake 有开源 self-host 推荐 吗?
|