1
hallDrawnel 2020-09-08 22:35:18 +08:00
这应该是他们的环境通过配置不同的域名、名字、ip:port 来做,而不是改你的实现吧。
|
2
miv 2020-09-08 22:42:16 +08:00 via iPhone
读取环境变量,做区分就好,就像 win 系统里面那些环境变量。启动 SDK 前,需要读取预设的环境变量进行判断
|
3
oneisall8955 2020-09-08 23:46:50 +08:00 via Android
根据环境,请求地址不同,路由到对应的环境网关
|
4
b0644170fc OP @hallDrawnel 现在就是想在我的 sdk 上来区分,而不需要用户自己手动设置
|
5
supermoonie 2020-09-09 07:56:04 +08:00 via iPhone
楼主真是操碎了心
|
6
nutting 2020-09-09 08:35:22 +08:00 1
你做你就是背锅啊,出问题说不清。肯定是要对方来区分。
|
7
nutting 2020-09-09 08:36:49 +08:00
换个说法,如果对方那边很清晰,他改一下不是很容易吗。如果很复杂,需要你根据 ip 判断什么的,那就很容易出差错。
|
8
foam 2020-09-09 09:12:11 +08:00 via Android 1
过度封装警告。
某个参数是否要暴露给业务,要看业务是否需要关心该参数。对于 sdk 环境,业务明显需要关心。1,业务可以在他的测试环境调用你的生产环境,用于测试。2,业务只需要关注他传入的参数,就可以明确知道此时 SDK 身处哪个环境。而不用担心改了哪些因变量,导致环境发生了变化。 ps. 更好的做法应该是不区分环境,让他们都调用到你们的生产环境去。当然,如果涉及到金钱等敏感资产的业务,让业务端传参,让他知道是否身处沙箱不是很正常吗。 |
9
chocotan 2020-09-09 09:27:10 +08:00
我们接口地址是让调用方自己传的,接口文档中写清楚多个环境的接口地址。
|
10
Oktfolio 2020-09-09 09:47:37 +08:00
SDK,创建对象的时候就指定个环境啊。或者 autoconfiguration,在 application.properties/application.yaml 配置。这有什么问题?
|
11
securityCoding 2020-09-09 09:53:53 +08:00
你关心环境干嘛....没见过这样的 sdk 哦
|
12
zhady009 2020-09-09 09:56:20 +08:00
根据自己分发的 clientId 来区分,在 api 网关转发
|
13
wysnylc 2020-09-09 10:08:51 +08:00
sdk 封装业务那就不叫 sdk
|
14
dogfeet 2020-09-09 10:27:14 +08:00 1
接过大量 SDK,也开发过一些。建议所谓测试模式正式模式,都做到生成环境中去。
正规一点的 SDK 常见的做法是:为客户分配参数,然后客户的应用默认是 Test mode. 客户正常接入(接入过程中会有很多垃圾数据脏数据),等到正式接入完成,你们再后台验收,查看关键接口调用与数据是否正常,验收正常,将 Test mode 修改为正式模式。 容易出错的地方,不要吝啬,多打日志,客户多了,什么样的程序员你都会见到的。 |
15
liudaolunhuibl 2020-09-14 16:28:17 +08:00
1 、使用者在 application 文件里自己配置,你们读配置文件
2 、配置参数在启动参数里你们读取启动参数啊 |