万维易源使用帮助手册
# 实现思路(important)

全部流程应该是: **从req开始, 到req_response结束。 **
--
如果您对编程足够熟练,看完这个部分,结合页面布局, 您将完全可以开始使用,应该能满足一般业务需要。
另外, 因为版本更新,可能细节有改动, 所以你了解我们的设计思路, 除了更容易上手之外,也对未来的使用很有帮助,
有任何使用上的问题或建议,请联系我们的客服qq: 2802673087
## Req ---> Balance
### 1. 数据组成
该阶段最终实现目的是: 生成数据源级别参数列表。 额外的还有一些连接数据源数据库等附加操作。这里只介绍如何生成这两个参数列表。
首先,我们向数据源提供者请求数据,这时它会给我们一个请求参数列表(视为数据源级别),数据源级别的数据,由多部分组成:
```
{
name: '',
appId: '', //密钥
userUniqueId: '' // 如果接口需要一个调用者唯一性的unique标记
}
```
1. 让用户提供过来一部分(视为用户级别),比如name
2. 你再拼接上一部分, 比如常量appId,
3. 由showapi提供一部分, 比如userUniqueId.
嗯, 数据有了, 但是还有一个问题, 我们指定给用户传入的变量名, 结构。和数据源提供者需要的并非完全一样! 而且,当你一个接入点调用多个节点(你知道的给一个抽象的事物起一个好名称很困难,所以这里你就简单理解成数据源)来提供数据时,数据结构将变得更加复杂。因此, 需要一个地方来做变量名的映射(重命名,重置结构...)
### 2. 配置位置
`用户级别的数据:` 完全在req中指定, 各种字段的类型, 长度等字段约束均在req中,

`由你拼接的数据:`:
+ 两种任选其一:
+ req中, 把字段类型设置成常量即可,如上图,
+ req_proxy中, 合成字段配置

`showapi提供的参数:`: req_proxy, 系统字段转发
> 注意: 仅仅是像时间戳一样的unique字符串, 跟showapi的用户数据库无关联

### 3. 展示位置
**数据源级别和showapi级别的数据并不需要展示**
`用户级别的数据:` api接口详情页里`请求参数`下`应用级参数`, 比如[天气预报](https://www.showapi.com/apiGateway/view/?apiCode=9&pointCode=4 "天气预报")

### 4. 映射位置
三种参数均在proxy里配置映射, 最终给节点使用, 主要是修改参数的名称, 位置,以及给哪个节点使用

`输入转发字段映射:` 用户级别的数据,以及设置了常量的数据源级别数据在这里做映射,
`系统字段转发:`showapi级别的数据,
`合成字段配置:` 你拼接的数据。除此之外,该功能允许你使用mustache语法将多个变量合并为一个, 这些变量来源于一个来源于用户输入, 一个来源于侧边栏的用户环境变量,另外为了方便调试, 也可以使用调试页面的用户输入, 因为没加前缀, 使用时尽量别命名空间冲突
`代码转换:` 暂无说明
## balance_response --> req_response
从节点返回的数据,也需要做变量声明和映射,再传给用户。跟 req--> balance阶段很相似,就不再赘述,除此之外, 你应该使用我们提供的负载均衡配置,以便让多个节点之间工作得更好。
正常逻辑, 当一个节点因为超时等故障需要切换到下一个备用节点,当所有节点均不能正常工作时应该返回一个mock数据(在balance_response里声明)
还需要有错误的日志, 或者因为未知原因,一段时间内你不想再提供数据, 你可以在请求参数里拼接一个我们规定好的常量, 若如此做,直接返回一个mock,而不走节点, 这个mock在req_response页面声明
