续集至json-schemas
将模型序列化为这些 JSON Schema 变体( 使用策略模式) :
与Sequelize版本4、5和6相兼容.
主要目标
对缺失的策略 自由使用公关策略
安装
npm install @alt3/sequelize-to-json-schemas --save
使用量
const { JsonSchemaManager, JsonSchema7Strategy, OpenApi3Strategy } = require('@alt3/sequelize-to-json-schemas');
const schemaManager = new JsonSchemaManager();
// now generate a JSON Schema Draft-07 model schema
let schema = schemaManager.generate(userModel, new JsonSchema7Strategy());
// and/or the OpenAPI 3.0 equivalent
schema = schemaManager.generate(userModel, new OpenApi3Strategy());
配置选项
要配置全局选项, 请使用 JsonSchemaManager 初始化 :
const schemaManager = new JsonSchemaManager({
baseUri: '/',
absolutePaths: true,
secureSchemaUri: true,
disableComments: true,
});
要配置( 每) 模型选项使用 generate() 方法 :
const userSchema = schemaManager.generate(userModel, strategy, {
title: 'Custom model title',
description: 'Custom model description',
exclude: ['someAttribute'],
include: ['someAttribute'],
associations: true,
excludeAssociations: ['someAssociation'],
includeAssociations: ['someAssociation'],
});
以下序列化属性选项自动转换为 计划属性 :
module.exports = (sequelize) => {
const model = sequelize.define('user', {
userName: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: 'Default Value',
associate: {},
},
});
return model;
};
要配置额外的计划属性,请添加一个 jsonSchema 属性为
下列一个或数个自定义选项来排序属性:
module.exports = (sequelize) => {
const model = sequelize.define('user', {
userName: {
type: DataTypes.STRING,
jsonSchema: {
description: 'Custom attribute description',
comment: 'Custom attribute comment',
examples: ['Custom example 1', 'Custom example 2'],
readOnly: true, // OR writeOnly: true
},
},
});
return model;
};
为了创建有效的输出 JSON 列,或以其他方式覆盖
附加一个 schema 属性 :
module.exports = (sequelize) => {
const model = sequelize.define('user', {
// ...
settings: {
type: DataTypes.JSON,
jsonSchema: {
schema: { type: 'object' },
},
},
});
return model;
};
框架整合
![]() 羽毛 |
许可证
本项目于 麻省理工学院。 。 。 .
捐款
请参看 提交文件的准则。 。 。 .
