@forchange/apis
基于 axios 封装的接口管理方案
Last updated 7 months ago by tinypanda .
MIT · Original npm · Tarball · package.json
$ cnpm install @forchange/apis 
SYNC missed versions from official npm registry.

apis

npm version license

基于 axios 封装的接口管理方案,@forchange/apis

Features

  • 接口统一管理
  • 可配置多个接口服务
  • 支持 restful 接口
  • 支持命名空间

Installing

$ npm install @forchange/apis

Syntax

new Apis(serverMap, apiMap);

Parameters

serverMap

  • serverMap 是服务配置的 map 对象
  • 服务的参数配置同 axios 中的 config 部分
  • default 为自定义属性,当 default 为 true 时,api 会使用它做为默认服务配置
{
  "baseServer": {
    "default": true,
    "baseUrl": "https://base.apis.com"
  }
}

apiMap

  • apiMap 是接口配置的 map 对象
  • 接口的参数配置同 axios 中的 config 部分,会覆盖服务配置中的参数
  • server 为自定义属性,表示使用哪个服务配置,当 server 为 null 时,表示使用默认服务配置
{
  "getBaseInfo": {
    "method": "get",
    "url": "/info"
  }
}

Custom

rest:restful 参数

当接口中需要传递 restful 参数时,按如下配置

配置时用:标记:

{
  "getBaseInfoId": {
    "method": "get",
    "url": "/info/:id"
  }
}

调用时参数中添加 rest 参数:

apis.getBaseInfoId({
  rest: {
    id: 1
  }
});

Namespace

^0.0.16 起支持

apiMap 的 key 中出现的 / 会解析为对应的命名空间路径,不需要命名空间时,不加 / 即可

e.g: auth/user/getInfo => auth.user.getInfo()
{
  'user/getInfo':{
    method: "get"
    server: "baseServer"
    url: "/user/info"
  }
}

=> apis.user.getInfo()

Interceptors

Apis 通过useReq,useRes两个接口对请求做拦截,可以多次调用,添加多个 middleware

Apis.useReq(middleware)

axios.interceptors.request.use

Apis.useReq(function(config) {
  config.headers.Authorization = "Bearer";
  return config;
});

Apis.useRes(middleware)

axios.interceptors.response.use

Apis.useRes(function(res) {
  res.msg = "ok";
  return res;
});

Usage

const apis = new Apis(serverMap, apiMap);

apis.getTest({
  params: {
    color: "green"
  }
});

License

MIT

Current Tags

  • 0.0.20                                ...           latest (7 months ago)

20 Versions

  • 0.0.20                                ...           7 months ago
  • 0.0.19                                ...           7 months ago
  • 0.0.18                                ...           7 months ago
  • 0.0.17                                ...           a year ago
  • 0.0.16                                ...           a year ago
  • 0.0.15                                ...           a year ago
  • 0.0.14                                ...           a year ago
  • 0.0.13                                ...           a year ago
  • 0.0.12                                ...           a year ago
  • 0.0.11                                ...           a year ago
  • 0.0.10                                ...           a year ago
  • 0.0.9                                ...           a year ago
  • 0.0.8                                ...           a year ago
  • 0.0.7                                ...           a year ago
  • 0.0.6                                ...           a year ago
  • 0.0.5                                ...           a year ago
  • 0.0.4                                ...           a year ago
  • 0.0.3                                ...           a year ago
  • 0.0.2                                ...           a year ago
  • 0.0.1                                ...           a year ago
Downloads
Today 7
This Week 28
This Month 28
Last Day 21
Last Week 97
Last Month 509
Dependencies (2)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |