先安装所需要的依赖
yarn add underscore json-schema-faker
使用
test(JsonsSchema格式)是假数据
const _ = require('underscore');
const mwapi = require('../utils/schema2json');
@Get('/schema2json')
async schema2json() {
const test:any = {
schema: {
$schema: 'http://json-schema.org/draft-04/schema#',
type: 'object',
properties: {
code: { type: 'string', mock: { mock: '555' } },
arr: {
type: 'object',
properties: {
item1: { type: 'string', mock: { mock: 'i1' } },
item2: { type: 'string', mock: { mock: '@string' } },
},
description: '数组',
required: ['item1', 'item2'],
},
},
required: ['arr'],
}
};
let schema = test.schema;
let required = test?.required;
console.log('mwapi',mwapi)
let res = mwapi.schemaToJson(schema, {
alwaysFakeOptionals: _.isUndefined(required) ? true : required,
});
console.log('***********',res)
return res
}
schema2json.js
const jsf = require('json-schema-faker');
jsf.extend('mock', function () {
return {
mock: function (xx) {
return Mock.mock(xx);
}
};
});
const defaultOptions = {
failOnInvalidTypes: false,
failOnInvalidFormat: false
};
exports.schemaToJson = function (schema, options = {}) {
Object.assign(options, defaultOptions);
jsf.option(options);
let result;
try {
result = jsf(schema);
} catch (err) {
result = err.message;
}
jsf.option(defaultOptions);
return result;
};