itingluo-api v0.0.1
wscn-ivanka-api
WSCN Ivanka API
Features
- 继承 teleman
- 自动设置
token
- 自动添加请求头
X-Ivanka-Token
、X-Client-Type
、X-Ivanka-Platform
、X-Taotie-Device-Id
、X-Device-Id
- 自动抛出非20000响应错误
Install
yarn add wscn-ivanka-api --registry=http://mavenhk.wallstcn.com/repository/npm-all/
Usage
import WscnIvankaAPI from 'wscn-ivanka-api'
const api = new WscnIvankaAPI({
env: 'prod', // sit, stage, prod
appId: 'com.wallstreetcn.web',
appVersion: '1.2.3',
onSafeError(e) {
// 现实中应该使用toast等友好的UI实现
console.error(e.code, e.message)
}
})
api.get('/user/info/me')
API
WscnIvankaApi(options)
Options:
env
类型:String
可选,默认为prod。base
默认值将从env
对应的值取得。
env | base |
---|---|
sit | https://api-sit.wallstreetcn.com |
stage | https://api-stage.wallstreetcn.com |
prod | https://api-prod.wallstreetcn.com |
base
类型:String
可选,默认为env
指定的值。相对于请求URL的基础URL。
apiVersion
类型:String
API地址前缀。可选,默认为 apiv1
。
appId
类型:String
业务appId,例如com.wallstreetcn.web
参见:http://115.159.108.254:4000/gui-ze/chang-liang.html
appVersion
类型:String
app版本,例如1.2.3
cache
类型:Boolean
可选。如果该项为真,将会缓存请求,并且将请求结果内联至head,供下次初始化使用,请配合cacheUntil
使用。
cacheUntil
类型:Number
可选,默认为400ms。第一个api发出并且成功响应后,如果在指定的毫秒内没有新的请求发出,那么结束缓存。
onReady(callback)
类型:Function
配合cache使用。当cache开启时,我们需要app在拉取到api缓存后替换DOM节点,以避免页面加载时闪屏的问题。
const api = const api = new WscnIvankaAPI({
env: 'prod', // sit, stage, prod
appId: 'com.wallstreetcn.web',
appVersion: '1.2.3',
cache: true,
onReady: replaceDocument
})
const app = new Vue(...).$mount()
function replaceDocument() {
document.body.replaceChild(app.$el, document.getElementById('app'))
}
ddcEnv
类型:String
以/ddc/
开头的API,URL会被改写未DDC服务的地址。ddcEnv
指定DDC服务环境。
默认为prod
。ddcBase
默认值将从ddcEnv
对应的值取得。
由于ddc没有stage环境,因此stage也使用prod地址。
env | base |
---|---|
sit | http://api-ddc-sit.wallstreetcn.com |
stage | http://api-ddc.wallstreetcn.com |
prod | http://api-ddc.wallstreetcn.com |
ddcBase
类型:String
可选,默认为ddcEnv
指定的值。相对于请求URL的基础URL。
onSafeError
类型: Function
api.safe.*
出错后的回调函数。
实例方法
api.fetch(url, { method, headers, query, body, type })
Params:
url
: String. The url of the request. The final url will be base + url + querystring
.
method
: String. HTTP methods. 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'. Defaults to 'GET'.
headers
: Object | Headers. HTTP headers.
query
: String | Object | Array | URLSearchParams.
The URL queries. String/Object/Array type will be used to create a URLSearchParams instance.
body
: Object | FormData | Blob | BufferSource | URLSearchParams | String. Any body that you want to add to your request.
Note that a request using the GET or HEAD method cannot have a body.
type
: String. 'json'
or 'form'
.
- If
type
is not defined andbody
is a plain object,body
will be transformed to JSON. - If
type
is'json'
,body
will be transformed to JSON. - If
type
is'form'
andbody
is a key-value object,body
will be transformed toFormData
withformData.append(name, value)
.
Request method aliases
api.get(url, query, options)
api.post(url, body, options)
api.put(url, body, options)
api.patch(url, body, options)
api.delete(url, query, options)
api.head(url, query, options)
api.safe
提供了安全方法,出错后不会执行之后的代码。并且调用 onSafeError
函数,你可以在函数内弹 toast 等方式提示错误信息。
const result = await api.safe.get(...)
// 如果拉取数据失败,下面代码不会执行
console.log(result)
经常使用的方法:
- api.safe.get()
- api.safe.post()
6 years ago