Skip to content

Mock

本地模拟接口请求

在仓库 server 目录下有基于NestJS模拟的接口

bash
# 启动sever
pnpm run server:dev
js
const BASE_URL = 'http://localhost:3000/file'

远程 mock 接口请求

js
const BASE_URL = 'https://uploader-server-seven.vercel.app/file'

请求示例

check

js
axios.get(`${BASE_URL}/check`, {
  params: {
    hash: 'xxxx-xxxx-xxxx',
    filename: 'xxx.png',
    status: 'none' // none, part, waitMerge, success
  }
})

返回结果1:

json
{
    "code": "00000",
    "statusCode": 200,
    "message": "success",
    "data": {
        "filename": "xxxx-xxxx-xxxx",
        "hash": "xxx.png",
        "status": "none",
        "data": false
    }
}
返回结果2: 文件status为part
json
{
    "code": "00000",
    "statusCode": 200,
    "message": "success",
    "data": {
        "filename": "xxxx-xxxx-xxxx",
        "hash": "xxx.png",
        "status": "part",
        "data": [0, 2, 4, 6, 8, 10] // 已经上传成功chunk的索引值
    }
}
返回结果3: 文件status为waitMerge
json
{
    "code": "00000",
    "statusCode": 200,
    "message": "success",
    "data": {
        "filename": "xxxx-xxxx-xxxx",
        "hash": "xxx.png",
        "status": "waitMerge",
        "data": ""
    }
}
返回结果3: 文件status为success
json
{
    "code": "00000",
    "statusCode": 200,
    "message": "success",
    "data": {
        "filename": "xxxx-xxxx-xxxx",
        "hash": "xxx.png",
        "status": "success",
        "data": "https://baidu.com"
    }
}
http状态码异常500
json
{
  "statusCode":500,
  "message":"/file/check mock error !",
  "data":null
}
code码异常00003
json
{
    "code": "00003",
    "statusCode": 200,
    "message": "mock error",
    "data": null
}

upload

js
const data = {
  hash: 'xxxx-xxxx-xxxx',
  filename: 'xxx.png',
  index: 2,
  file: binary
}
const formData = new FormData()
Object.entries(data).forEach(([key, value]) => formData.append(key, value))

axios.post(`${BASE_URL}/upload`, { data: formData })

返回结果

json
{
    "code": "00000",
    "statusCode": 201,
    "message": "success",
    "data": {
        "filename": "xxx.png",
        "hash": "xxxx-xxxx-xxxx",
        "index": "2"
    }
}
http状态码异常500
json
{
  "statusCode":500,
  "message":"/file/upload mock error !",
  "data":null
}
code码异常00003
json
{
    "code": "00003",
    "statusCode": 200,
    "message": "mock error",
    "data": null
}

merge

js
axios.get(`${BASE_URL}/merge`, {
  params: {
    hash: 'xxxx-xxxx-xxxx',
    filename: 'xxx.png'
  }
})

返回结果

json
{
    "code": "00000",
    "statusCode": 200,
    "message": "success",
    "data": "http://localhost:3000/static/xxx.png"
}
http状态码异常500
json
{
  "statusCode":500,
  "message":"/file/merge mock error !",
  "data":null
}
code码异常00003
json
{
    "code": "00003",
    "statusCode": 200,
    "message": "mock error",
    "data": null
}

mock接口异常

TIP

接口参数中添加下面两个参数来模拟接口异常的情况

status_error

有值时来模拟返回接口错误,返回http请求status状态码为500; 正常返回为200

code_error

有值时来模拟返回接口错误,返回http请求status状态码为200, 返回结果code码00003; 正常返回00000