简单、快速、无需注册的 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-data 或 application/x-www-form-urlencoded , responseBody 和 contentType 无需使用 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,将上面代码复制进去即可。
更多
- https://blog.starxg.com/2023/08/mock/



















