我正在尝试使用来自commonjs-utils的node.js + json-schema.js验证我的JSON
API。单一验证很容易,但是找不到正确的方法来管理多个架构文件以实现相互引用。
假设我有两个模型和两个API。
// book
{
"type": "object",
"properties": {
"title": { "type": "string" },
"author": { "type": "string" }
}
}
// author
{
"type": "object",
"properties": {
"first_name": { "type": "string" },
"last_name": { "type": "string" }
}
}
// authors API
{
"type": "array",
"items": { "$ref": "author" }
}
// books API: list of books written by same author
{
"type": "object",
"properties": {
"author": { "$ref": "author" }
"books": { "type": "array", "items": { "$ref": "book" } }
}
}
每个模式都应划分为单独的文件并在线吗?还是可以像下面那样合并成单个架构文件?如果可能,如何引用本地模式?
// single schema file {
"book": { ... },
"author": { ... },
"authors": { ... },
"books": { ... } }
在JSON模式中,您可以为每个文件放置一个模式,然后使用其URL(存储它们的位置)或带有id
标签的大模式来访问它们。
这是一个大文件:
{
"id": "#root",
"properties": {
"author": {
"id": "#author",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
}
},
"type": "object"
},
// author
"author_api": {
"id": "#author_api",
"items": {
"$ref": "author"
},
"type": "array"
},
// authors API
"book": {
"id": "#book",
"properties": {
"author": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
// books API: list of books written by same author
"books_api": {
"id": "#books_api",
"properties": {
"author": {
"$ref": "author"
},
"books": {
"items": {
"$ref": "book"
},
"type": "array"
}
},
"type": "object"
}
}
}
然后,您可以将验证器引用到这些子模式之一(用定义id
)。
从架构之外,这是:
{ "$ref": "url://to/your/schema#root/properties/book" }
等效于此:
{ "$ref": "url://to/your/schema#book" }
…从内部等效于此:
{ "$ref": "#root/properties/book" }
或此(仍从内部):
{ "$ref": "#book" }
我正在尝试对具有相同生命周期的许多不同的Postgresql架构进行迁移。根据飞行路线文档,这种情况应该有效。我的 ANT 脚本中有以下内容:当我运行迁移时,更改仅应用于第一个(默认)架构。 是我做错了什么,还是flyway.schemas属性只对clean有效? 谢谢
在用Python编写BigQuery之前,如何在数据流作业中处理此逻辑?
我正在尝试将我的API文档分解成多个JSON文件,这些文件可以独立编辑。我能找到的所有示例都使用了Swagger1.2模式,它有一个“api”:{}对象来分解它。2.0模式(http://json.schemastore.org/swagger-2.0)中似乎缺少这一点。定义的只是一个“路径”数组,它将所有APIendpoint绑定到这个数组中。这在swagger-ui中的效果是,有一个单一的“默
目前,我们使用JJB编译Jenkins作业(大部分已经是管道),以便配置大约700个作业,但JJB2似乎无法很好地扩展以构建管道,我正在寻找一种方法将其从等式中删除。 我主要希望能够将所有这些管道存储在一个集中的存储库中。 请注意,在我们的用例中,将CI配置(jenkins文件)保存在每个存储库和分支中是不可能的,我们需要将所有管道保存在一个“jenkins jobs.git”repo中。
我在同一个目录中有几个具有相同结构的。json文件。我想从每个json文件的一些键创建一个具有值的唯一csv文件。 通过一个文件循环,一切都正常。下面是脚本的快照:
本文向大家介绍Python多个上下文管理器,包括了Python多个上下文管理器的使用技巧和注意事项,需要的朋友参考一下 示例 您可以同时打开多个内容管理器: 它与嵌套上下文管理器具有相同的效果: