如何使用相同的JSON模式生成/参考字段值(How to use / reference field

2019-10-30 03:39发布

我试图通过创建模拟数据json-server与组合json-schema-faker

我试图使用$ref属性,但我明白,这只是引用类型,而不是精确值。

有没有办法重新使用完全相同的价值,而不仅仅是它的类型?

在该模式我有mockDataSchema.js文件是:

var schema =
{
    "title": "tests",
    "type": "object",
    "required": [
        "test"
    ],
    "properties": {
        "test": {
            "type": "object",
            "required": [
                "id",
                "test2_ids",
                "test3"
            ],
            "properties": {
                "id": {
                    "type": "string",
                    "faker": "random.uuid" // here
                },
                "test2_ids": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "faker": "random.uuid" // here
                    }
                },
                "test3": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string",
                                "faker": "random.uuid" // here
                            }
                        }
                    }
                }
            }
        }
    }
};

module.exports = schema;

从这个模式我想要的id是在我与评论指出的所有三个位置相同// here

请注意,我不能使用enumconst ,因为我想有多个tests出现。

test2_ids将是一个阵列,所以我想包括用于同一类型的第一ID和其他值该特定ID以及..

idtest3我只是想完全相同的值作为idtest

它是什么,我想实现可行吗?

或者是有没有办法更改这些数据generateMockData.js文件,而不是mockDataSchema.js其中包括该模式?

generateMockData.js

var jsf = require('json-schema-faker');
var mockDataSchema = require('./mockDataSchema');
var fs = require('fs');

var json = JSON.stringify(jsf(mockDataSchema));

fs.writeFile("./src/api/db.json", json, function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log("Mock data generated.");
  }

});
文章来源: How to use / reference field values generated in the same json schema