1.13.0 • Published 6 days ago

@mx-space/api-client v1.13.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 days ago

MApi Client

这是一个适用于 MServer v3 的 JS SDK,封装了常用接口请求方法以及返回类型的声明,以快速开发前端应用。

迁移到 v1

不再提供 camelcase-keys 的 re-export,此库不再依赖 camelcase-keys 库,如有需要可自行安装。

- import { camelcaseKeysDeep, camelcaseKeys } from '@mx-space/api-client'
+ import { simpleCamelcaseKeys as camelcaseKeysDeep } from '@mx-space/api-client'

如何使用

此 SDK 框架无关,不捆绑任何一个网络请求库,只需要提供适配器。你需要手动传入符合接口标准的适配器。

此项目提供 axiosumi-request 两个适配器。

axios 为例。

import {
  AggregateController,
  CategoryController,
  NoteController,
  PostController,
  allControllers, // ...
  createClient,
} from '@mx-space/api-client'
import { axiosAdaptor } from '@mx-space/api-client/adaptors/axios'

const endpoint = 'https://api.innei.dev/v2'
const client = createClient(axiosAdaptor)(endpoint)

// `default` is AxiosInstance
// you can do anything else on this
// interceptor or re-configure
const $axios = axiosAdaptor.default
// re-config (optional)
$axios.defaults.timeout = 10000
// set interceptors (optional)
$axios.interceptors.request.use(
  (config) => {
    const token = getToken()
    if (token) {
      config.headers!['Authorization'] = 'bearer ' + getToken()
    }

    return config
  },
  (error) => {
    if (__DEV__) {
      console.log(error.message)
    }

    return Promise.reject(error)
  },
)

// inject controller first.
client.injectControllers([
  PostController,
  NoteController,
  AggregateController,
  CategoryController,
])

// or you can inject allControllers
client.injectControllers(allControllers)

// then you can request `post` `note` and `aggregate` controller

client.post.post.getList(page, 10, { year }).then((data) => {
  // do anything
})

为什么要手动注入控制器

按需加载,可以减少打包体积 (Tree Shake)

为什么不依赖请求库

可以防止项目中出现两个请求库,减少打包体积

如果不使用 axios,应该如何编写适配器

参考 src/adaptors/axios.tssrc/adaptors/umi-request.ts

如何使用 proxy 来访问 sdk 内未包含的请求

如请求 GET /notes/something/other/123456/info,可以使用

client.note.proxy.something.other('123456').info.get()

从 proxy 获取请求地址但不发出

client.note.proxy.something.other('123456').info.toString() // /notes/something/other/123456/info

client.note.proxy.something.other('123456').info.toString(true) // http://localhost:2333/notes/something/other/123456/info
1.13.0

6 days ago

1.12.1

13 days ago

1.12.0

14 days ago

1.11.2

15 days ago

1.11.1

15 days ago

1.11.0

27 days ago

1.11.0-alpha.0

28 days ago

1.10.1

29 days ago

1.9.0

1 month ago

1.10.0

1 month ago

1.8.1

1 month ago

1.8.0

2 months ago

1.8.1-alpha.0

2 months ago

1.8.0-beta.1

3 months ago

1.8.0-beta.0

3 months ago

1.8.0-alpha.6

3 months ago

1.8.0-alpha.5

3 months ago

1.8.0-alpha.3

3 months ago

1.8.0-alpha.4

3 months ago

1.8.0-alpha.2

3 months ago

1.8.0-alpha.1

3 months ago

1.7.2

4 months ago

1.7.1

4 months ago

1.7.0

4 months ago

1.6.2

7 months ago

1.6.1

7 months ago

1.6.0

7 months ago

1.5.1

9 months ago

1.5.0

9 months ago

1.4.3

11 months ago

1.4.2

11 months ago

1.4.1

11 months ago

1.4.0

1 year ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.3

1 year ago

1.1.0

1 year ago

1.0.0-alpha.4

2 years ago

1.0.0-alpha.3

2 years ago

1.0.0-beta.2

2 years ago

1.0.0-beta.3

2 years ago

1.0.0-beta.0

2 years ago

1.0.0-beta.1

2 years ago

1.0.0-alpha.2

2 years ago

1.0.0-alpha.1

2 years ago

0.10.14

2 years ago

0.10.10

2 years ago

0.10.11

2 years ago

0.10.12

2 years ago

0.10.13

2 years ago

0.10.9

2 years ago

0.10.1

2 years ago

0.10.2

2 years ago

0.10.3

2 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.6

2 years ago

0.10.7

2 years ago

0.10.8

2 years ago

0.10.0

2 years ago

0.9.0

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.8.2

2 years ago

0.7.2

2 years ago

0.7.4

2 years ago

0.7.3

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.4.9

2 years ago

0.4.8

2 years ago

0.4.10

2 years ago

0.4.15

2 years ago

0.4.16

2 years ago

0.4.13

2 years ago

0.4.14

2 years ago

0.7.0-alpha.1

2 years ago

0.4.11

2 years ago

0.7.0-alpha.0

2 years ago

0.4.12

2 years ago

0.6.3

2 years ago

0.5.4

2 years ago

0.4.5

2 years ago

0.7.1

2 years ago

0.6.2

2 years ago

0.5.3

2 years ago

0.4.7

2 years ago

0.4.6

2 years ago

0.5.0

2 years ago

0.7.0

2 years ago

0.6.1

2 years ago

0.5.2

2 years ago

0.6.0

2 years ago

0.5.1

2 years ago

0.1.0

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.3.6

2 years ago

0.4.4

2 years ago

0.3.5

2 years ago

0.3.7

2 years ago

0.4.1

2 years ago

0.3.2

2 years ago

0.0.5

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.4.3

2 years ago

0.3.4

2 years ago

0.4.2

2 years ago

0.3.3

2 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago