问题
I am trying to create mock data by using the json-server in combination with the json-schema-faker.
I was trying to use the $ref property but I understood that this only references the type and not the exact value.
Is there a way to reuse the exact same value instead of just its type?
The schema I have in mockDataSchema.js file is:
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;
From this schema I want the id to be the same in all three locations which i have indicated with the comment // here.
Note that I can't use an enum or const as I want to have multiple tests occurrences.
test2_ids will be an array so i would like to include that specific id for the first id and other values of the same type as well..
In the id of test3 i just want the exact same value as the id of test.
Is it feasible what I am trying to achieve?
Or is there a way to change these data in the generateMockData.js file instead of the mockDataSchema.js which includes this schema ?
My 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.");
}
});
来源:https://stackoverflow.com/questions/54940463/how-to-use-reference-field-values-generated-in-the-same-json-schema