# MapGIS Client for JavaScript API

Cesium MapboxGL Leaflet OpenLayers
API文档

#### # new ServiceConfig(options)

服务全局配置，通过服务基地址来进行请求的拦截，多个服务基地址可共用一个拦截器，不同服务可设置的参数不同

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` | Object |  | 构造参数
`tokenKey` | String | 'token' | token名
`tokenValue` | String |  | token值
`headers` | Object |  | 请求头信息
`requestInterceptors` | Array.<RequestInterceptor> | [] | 请求发送前的拦截函数
`responseInterceptors` | Array.<ResponseInterceptor> | [] | 请求发送完成的拦截函数

查看源代码 common/service/ServiceConfig.js, line 3

##### 示例

<h7>地图图层(IGSMapImageLayer)设置拦截参数</h7>

    // 目前IGSMapImageLayer支持设置token，以及服务发送前的处理函数
    // 设置token名，没有则默认为token
    // ES5引入方式
    const { ServiceConfig } = Zondy.Service
    // ES6引入方式
    import { ServiceConfig } from "@mapgis/webclient-common
    ServiceConfig.tokenKey = '新token名'
    // 设置token值
    ServiceConfig.tokenValue = '新token值'
    // 设置请求发送前的参数处理函数，由于服务特殊性，暂时只有这个方法
    ServiceConfig.requestInterceptors.push({
      // 改拦截器要拦截的服务请求地址，单个url就填字符串，多个字符串就填数组
      urls: 'http://webclient.smaryun.com:8089/igs/rest/services/Map/Hubei4326/MapServer',
      // urls: ['http://webclient.smaryun.com:8089/igs/rest/services/Map/Hubei4326/MapServer'],
      // 服务发送前的处理函数
      before: function (params) {
        // params为在url中拼装的参数
        // 处理要显示的图层
        params.layers = 'show:0,1'
      }
    })

<h7>瓦片图层(IGSTileLayer)设置拦截参数</h7>

    // 目前IGSTileLayer支持设置token，以及服务发送前的处理函数
    // 设置token名，没有则默认为token
     // ES5引入方式
    const { ServiceConfig } = Zondy.Service
    // ES6引入方式
    import { ServiceConfig } from "@mapgis/webclient-common
    ServiceConfig.tokenKey = '新token名'
    // 设置token值
    ServiceConfig.tokenValue = '新token值'
    // 设置请求发送前的参数处理函数，由于服务特殊性，暂时只有这个方法
    ServiceConfig.requestInterceptors.push({
      // 改拦截器要拦截的服务请求地址，单个url就填字符串，多个字符串就填数组
      urls: 'http://webclient.smaryun.com:8089/igs/rest/services/Tile/北京市/TileServer',
      // urls: ['http://webclient.smaryun.com:8089/igs/rest/services/Tile/北京市/TileServer'],
      // 服务发送前的处理函数，仅可处理url
      before: function (url) {
        console.log("url:", url)
      }
    })

### 方法

#### # static getRequestInterceptor(url, requestInterceptors)

通过url来获取匹配的request拦截器

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`url` | String | 要匹配的基地址
`requestInterceptors` | Array | 拦截器数组

查看源代码 common/service/ServiceConfig.js, line 71

返回值:

匹配的拦截器

类型: Object
构造函数
成员变量
方法
事件