## 一 定义
### 1. 全局API配置
- **api 构成**
`apiFormat` api格式,这里我们定义`hostUrl`、`modularName`、`controlName`以及`actionName` 分别代表,访问域名、模块命名、控制器名以及行为名称,`apiFormat=hostUrl/modularName/controlName/actionName` 代表api的URL将会按照这个格式生成,具体字段可以在全局、模块或具体API定义上配置。
名称 | 类型 | 说明
:-----------: | :-----------: | -----------
env | String | 开发环境
hostUrl | Object | 访问域名,{key:vlaue} ,key代表环境名称,value代表当前环境的域名
modularName | String | 全局配置模块名
controlName | String | 全局配置控制器名
actionName | String | 全局配置行为名称(一般不会在全局做配置)
### 2.模块配置
每个模块都可以在 `api/index.js` 下定义
- **modularInfo**
名称 | 类型 | 说明
:-----------: | :-----------: | -----------
modularName | String | 模块配置模块名(该配置全模块生效,不定义配置默认读取全局)
controlName | String | 模块配置控制器名(该配置全模块生效,不定义配置默认读取全局)
- **default**
这里定一个多个具体api 配置
```
export const modularInfo = {
controlName: 'Common'
}
export default {
getValidCode: {
method: "POST",
actionName: "getValidCode"
},
loginByValidCode: {
method: "POST",
controlName: 'register'
,
actionName: "loginByValidCode"
},
loginByAuthPhone: {
method: "POST",
url: "/index.php?s=/api/user/loginByAuthPhone"
},
updateInfo: {
api_type: "shop",
method: "POST",
url: "/index.php?s=/api/user/updateInfo"
}
}
```
名称 | 类型 | 说明
:-----------: | :-----------: | -----------
api_type | String | 默认为 ztbcms,正常的api地址解析,‘shop’ 为逸店商城请求模式
method | String | 请求方法 GET、POST
hostUrl | String | 访问域名(该配置全模块生效,不定义配置默认读取模块配置)
modularName | String | 配置模块名(该配置全模块生效,不定义配置默认读取模块配置)
controlName | String | 配置控制器名(该配置全模块生效,不定义配置默认读取模块配置)
actionName | String | 配置行为名称(一般不会在配置,不定义配置默认读取模块配置)
url | String | 直接访问url,如果定义URL,则直接请求 `hostUrl/url`
loading | String | 是否显示加载框,GET方法默认不显示,POST方法默认显示
### 3.文件上传api
- **定义**
```
// 上传视频
UploadVideo: {
method: "UPLOAD",
controlName: 'api.upload',
actionName: "videoUpload"
},
// 上传文件
UploadFile: {
method: "UPLOAD",
controlName: 'api.upload',
actionName: "fileUpload"
},
```
- **header**
对于上传请求的header,默认**不读取全局配置中的header配置**,但是会读取api配置中的header变量和Request调用传的header
## 二 调用
### Request
在页面调用请求时都通过`this.$Request({api_name},{data},{options})` 方法调用 。
| 参数 | 类型 | 说明 |
| :---: | :---: |---|
| api_name | String | api名称,由{模块名}.{api名称}组成,例如 `User.Login` |
|data|Object|传参对象
|options|Object| 具体参数看options介绍
### options
| 字段 | 类型 | 默认值|说明
| :---: | :---: | :---: | --- |
| header | Object | {} | 请求头,也可以在全局配置 |
| loading | Boolean | false/true | Get 方法默认是false,Post 方法默认是true |
| loadingText | String | 加载中 | 加载显示类型 |
| successCode | Array | [] | 定义成功返回的code,默认是全局配置 ,成功的code不会做提示处理,也会做正常的返回|
| ignoreToastCode | Array | [] | 默认读取全局配置、忽略toast提示code |
| forceReturn | Boolean | false | 是否强制返回,true代表无论什么请求结果,都成功返回数据 |