-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
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
proposal: Email notify API [SaaS API] #717
Comments
以实际使用来说,当把 |
其他关于参数的讨论见:#715 |
|
|
例如腾讯 email服务的传参就有这种字段: 如果担心 api里字段太多、让用户困惑,那可以拆成多个方法,比如:
|
是的,我应该写错了,这种场景应该是存在的。 |
我不太清楚,你们会有这样的场景么。我目前接触到的和了解到的,这套api主要是做notify用的,如果有复杂内容,一般是给个url链接,然后可以跳转到对应云产品的页面进行查看。 是会有一些发送数据分析/数据报表的email,但这些一般都是有个单独的服务/平台,去计算出来。 |
我觉得也是....之前似乎讨论过,我们可以设计一个 "全集" 的notify api。
是这样想的:
因为email的特征是,像以下这些参数,基本不太会变动,所以没必要让接入方每次都传入一大堆参数才能发出去email。 传个id就可以了,再从configuration等地方,获取对应的配置即可。(这样还可以实现热更新的逻辑) {
“id”: {
"application_id": "value1",
"email_from_address": "value2",
"subject": "value3"
}
}
这里或许可以改成
我感觉可以啊,我对这种场景不太了解。 |
就是saas api,还是往 "全集" 的方向走是么。 毕竟这些api,都是弱移植性的,用户用起来也不太会改了。 那这样,拆成几个语义更加清晰的方法,似乎比追求通用性,差异字段放在metadata中更好,更易用。 我也认同这个思路,那看起来:
|
action:
|
Hi, This is
Email notify API
proposal.What would you like to be added:
saas api: Email notify api
Why is this needed:
#712
Support situation:
API spec:
字段设计考虑:
1. Email原生API非常复杂,难取交集
aliyun/aws/tencent/...,在原生API设计上都有很多自己独特的请求参数,这取决于云Email自身的一些设计。
例如:
2. Email具有弱移植性
一个公司,如果Email的目的是做通知(数量较少,对内),而不是大规模的对客营销/通知(这种场景应该自行部署一个服务,而不是使用runtime提供的saas能力),那么大概率也只会使用一种Email服务(申请、维护、成本、管理、地域等各方面)。
所以本身Email代码就不需要很强的可移植性,那么对于一些特有的字段,可以接受放在metadata中。
3. Runtime API取核心字段,其他字段放metadata
尽可能取多种Email都有的一些概念,将这些字段放在API中,其他字段放metadata。
对于一次Email发送,有几个字段是必需的:
application_id
:Email属于比较重量级的资源,同时可能具备一定的社会影响,所以资源监管比较严格。往往需要提前审核Email模板等,会赋予一个application_id,作为该模板的标识。email_from_address
:发件人地址email_to_addresses
:邮件接收地址列表subject
:邮件主题data
:email的content body,可能是一段html以及,设计两个基础字段:
id
:用于进行一定的标识,从而可以实现基于id获取配置的功能。往往Email的配置相对静态,可以通过id获取Email的相关配置,减少在metadata中的字段saas_name
:多Email场景时使用,保留这样的可拓展性。当用到该场景时,由于不同Email的发送参数有巨大差异,如果在代码中传递metadata等字段,则可能无法移植,这时候就需要上述的 id 功能。The text was updated successfully, but these errors were encountered: