anymock-openapi
可跨端的 Anymock Openapi SDK。可用于获取 Mock 数据以及其他众多 openapi。
—— 一款好用的 Anymock 平台 辅助工具
Install
tnpm install anymock-openapi --save
Concept
通过调用者使用不同环境下的的请求发生器,该 openapi sdk 可以灵活适配浏览器或 Node.js 场景。
请求发生器在本 SDK 中被抽象成“管道”,英文名 pipe。
Use
Browser
import AnymockOpenapi from 'anymock-openapi';
import { EClients, ETypes } from 'anymock-include';
const fetch = window.fetch;
const config = {
fromClient: EClients.chromeExtensionAnymock,
projectToken: 'YOUR_ANYMOCK_PROJECT_TOKEN',
};
const pipe = (options) => {
const url = options.url;
const body = JSON.stringify(options.data);
delete options.url;
delete options.data;
return fetch(url, { ...options, body })
.then(res => res.json());
};
const api = new AnymockOpenapi(config, pipe);
const result = await api.mock.query({
type: ETypes.RPC,
matching: 'com.aaa.w34',
});
const { data: projectDetails } = await api.project.get();
Node.js
const fetch = require('node-fetch');
const AnymockOpenapi = require('anymock-openapi');
const { EClients, ETypes } = require('anymock-include');
const config = {
fromClient: EClients.nodejsAnymock,
projectToken: 'YOUR_ANYMOCK_PROJECT_TOKEN',
};
const pipe = (options) => {
const url = options.url;
const body = JSON.stringify(options.data);
delete options.url;
delete options.data;
return fetch(url, { ...options,body })
.then(res => res.json());
};
const api = new AnymockOpenapi(config, pipe);
const result = await api.mock.query({
type: ETypes.RPC,
matching: 'com.aaa.w34',
});
Develop
UT
单测项目:http://anymock.local.alipay.net:7002/project/2000008/workspace
yarn test packages/openapi/__tests__/basic.spec.ts