跳到主要内容

🔒 @ones-op/fetch/legacy

这个包会导出 FetchONES 方法,用于请求 ONES 内部的接口,我们并不建议这样使用,请尽量使用 OPEN API 来请求接口。

警告

使用这个包请求内部接口可能会导致兼容性问题,不建议使用。

要求

@ones-op/fetchONES
v0.6.0+V6.0.0+

安装

进入 /web/backend 目录,通过以下命令安装此包:

npm install @ones-op/fetch

使用

前端

FetchONES 这个包导出的是标品中的 axios 实例,具体实现可以参考标品的代码。这个包只能被当作方法使用,接受一个配置对象,返回一个 Promise。

注意

FetchONES 不能被继承,不能添加拦截器。

FetchONES.getFetchONES.post 等方法被废弃,不做支持。

import { FetchONES } from '@ones-op/fetch/legacy'

// 类型定义
function FetchONES(
config: AxiosRequestConfig & {
// 请使用 type,如果使用 method,会导致 body 里面的数据放在 url 上。类型和 axios 的 method 一致。
type?: 'GET'
// 默认情况下,url 会自动带上 `api/project` 前缀,如果是 true,会直接使用 `config.url` 去请求接口。
static?: boolean
// 如果不传,默认 project,如果想请求 `api/wiki`,可以将值设为 wiki
product?: 'project' | 'wiki'
},
): Promise<AxiosResponse>

// 使用示例
FetchONES({
url: '/users/me',
type: 'GET',
})
.then((response) => {
console.log(response)
})
.catch((error) => {
console.error(error)
})

后端

FetchONES 继承自 Fetch,具体使用请参阅 实例方法,此节仅作补充介绍。

内置内部通信请求 ONES 接口方法适配器(后端)

我们将内部通信请求 ONES 接口方法(原 “@ones-op/node-fetch” 的 fetchONES 方法)通过适配器的方式,集成进了该包中。如果你的请求参数是一个相对路径,则会由内部通信请求替代 http 为你请求 ONES 接口。