简单、快速、无需注册的在线 MockJs 工具

简单、快速、无需注册的 MockJs 工具。通过参数来返回数据,传入什么参数就返回什么数据。

使用

接口只支持返回文本类数据,不支持图片、流数据等。

json

调用接口 https://mock.starxg.com/?responseBody={“say”:“hello”}&contentType=application/json

{
  "say": "hello"
}

xml

调用接口 https://mock.starxg.com/?responseBody=xml…&contentType=application/xml;charset=utf8

<?xml version="1.0" encoding="UTF-8"?>
<message>
    <warning>
         Hello World
    </warning>
</message>

svg

调用接口 https://mock.starxg.com/?responseBody=svg…&contentType=image/svg+xml

响应:

text

调用接口 https://mock.starxg.com/?responseBody…&contentType=text/plain;charset=utf8

君不见,黄河之水天上来,奔流到海不复回。

君不见,高堂明镜悲白发,朝如青丝暮成雪。

人生得意须尽欢,莫使金樽空对月。

天生我材必有用,千金散尽还复来。

烹羊宰牛且为乐,会须一饮三百杯。

岑夫子,丹丘生,将进酒,杯莫停。

与君歌一曲,请君为我倾耳听。

钟鼓馔玉不足贵,但愿长醉不愿醒。

古来圣贤皆寂寞,惟有饮者留其名。

陈王昔时宴平乐,斗酒十千恣欢谑。

主人何为言少钱,径须沽取对君酌。

五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。

参数

整个接口构造非常简单

http[s]://mock.starxg.com/[path]?responseBody=[responseBody]&contentType=[contentType]

  • path: 任意。例如:/user/add/user/get ,也可以为空
  • responseBody: 响应体,任意字符。为了避免部分字符转义问题,建议使用 encodeURIComponent 转换一下
  • contentType: 媒体类型,默认: text/plain

GET

通常,浏览器会对 GET 请求的参数大小做限制,每个浏览器限制不同。当参数过长时,请使用 POST 请求。

  • IE:URL的最大限制为2083个字符,若超出这个数字,提交按钮没有任何反应。
  • Firefox:URL的长度限制为 65536 个字符。
  • Safari:URL最大长度限制为 80000 个字符。
  • Opera:URL最大长度限制为 190000 个字符。
  • Chrome:URL最大长度限制为 8182 个字符。
  • Apache(Server):URL最大长度限制为 8192个 字符。
  • Microsoft Internet Information Server(IIS):URL最大长度限制为 16384 个字符。

POST

当使用 POST 请求时,请求类型须为 form-dataapplication/x-www-form-urlencodedresponseBodycontentType 无需使用 encodeURIComponent 转码。

Postman 使用如下:

源代码

const defaultResponseBody = `responseBody: hello world
contentType: text/plain
`

const cors = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Headers': '*'
}

export default {
  async fetch(request, env, ctx) {

    if (request.method === 'OPTIONS') {
      return new Response('', {
        headers: {
          ...cors
        }
      });
    }

    const params = new URL(request.url).searchParams
    let responseBody = decodeURIComponent(params.get('responseBody') || '')
    let contentType = params.get('contentType') || ''

    if (request.method !== 'GET' && (contentType === ''
      || responseBody === '')) {
      const ct = request.headers.get("content-type");
      if (ct.includes("form")) {

        const formData = await request.formData();
        const body = {};
        for (const entry of formData.entries()) {
          body[entry[0]] = entry[1];
        }

        if (contentType === '') {
          contentType = body['contentType']
        }

        if (responseBody === '') {
          responseBody = body['responseBody']
        }

      }
    }

    contentType = contentType || 'text/plain'
    responseBody = responseBody || defaultResponseBody

    return new Response(responseBody, {
      headers: {
        'content-type': contentType,
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Headers': '*'
      }
    });
  },
};

自有部署

注册 Cloudflare 账号,然后创建一个 Worker,将上面代码复制进去即可。

更多

  1. https://blog.starxg.com/2023/08/mock/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值