我正在Microsoft Flow / Logic Apps中创建一个自定义连接器,基于带有Microsoft扩展的Swagger文件(x-ms-dynamic-schema和x-ms-dynamic-values)。
我现在想要获取一个对象数组。每个对象都具有相同的JSON模式。 使用x-ms-dynamic-schema扩展,可以说逻辑应用程序/流程设计器需要获取响应的JSON模式,以便您可以提供对象的属性。
我想要实现的目标是:
到目前为止我尝试了什么:
获取架构的操作:
"/api/entitydefinitions/{type}": { "get": { "summary": "Get Entity Definition Schema", "description": "Gets the schema of an entity definition.", "operationId": "GetEntitySchemaByDefinition", "produces": [ "application/json" ], "parameters": [ { "name": "type", "type": "string", "in": "path", "description": "Select Entity you want to query", "required": true, "x-ms-summary": "Select Entity" } ], "responses": { "200": { "description": "OK", "schema": { "type": "object" } } } } }
获取实体列表的操作:
"/api/entitydefinitions/{type-dynamic}/entities": {
"get": {
"summary": "List entities",
"description": "Gets entities",
"operationId": "ListEntitiesByDefinition",
"parameters": [
{
"name": "type-dynamic",
"type": "string",
"in": "path",
"description": "Select entity definition",
"required": true,
"x-ms-summary": "Entity Definition",
"x-ms-dynamic-values": {
"operationId": "ListEntityDefinitions",
"value-path": "name",
"value-title": "name",
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/ListEntitiesByDefinitionResponse"
}
}
}
}
}
上述
的响应定义"ListEntitiesByDefinitionResponse": { "type": "object", "x-ms-dynamic-schema": { "operationId": "GetEntitySchemaByDefinition", "parameters": { "type": { "parameter": "type-dynamic" } }, "value-path": "items" } },
现在,我的输出示例:
[
{
"id": 4541,
"identifier": "123456789",
"Name": "Name 1",
"Description": "",
},
{
"id": 4542,
"identifier": "987654321",
"Name": "FromPostman",
"Description": "",
}
]
我的架构:
{
"type": "array",
"items": {
"title": "Example",
"type": "object",
"properties": {
"id": {
"type": "integer",
"x-ms-summary": "id"
},
"identifier": {
"type": "string",
"x-ms-summary": "identifier"
},
"Name": {
"type": "string",
"x-ms-summary": "Name"
},
"Description": {
"type": "string",
"x-ms-summary": "Description"
}
},
"required": []
}
}
问题是我的流程应用确实在设计模式中显示了属性:
但是,我希望插入一个循环(适用于每个)
流程本身也不起作用,只是因为它没有循环数组中的对象。
已花了太多时间在这上面寻找你的帮助。
答案 0 :(得分:0)
好吧..您可以反对Azure Flow设计...或者您可以决定使用它。
让我们尝试替换此输出:
[
{
"id": 4541,
"identifier": "123456789",
"Name": "Name 1",
"Description": "",
},
{
"id": 4542,
"identifier": "987654321",
"Name": "FromPostman",
"Description": "",
}
]
有了这个:
{
"values":
[
{
"id": 4541,
"identifier": "123456789",
"Name": "Name 1",
"Description": "",
},
{
"id": 4542,
"identifier": "987654321",
"Name": "FromPostman",
"Description": "",
}
]
}
我知道..它是“相同”的输出,但是使用不同的方法。这样,您可以在新的values
动作中使用apply to each
字段并从那里进行操作
但是,我希望插入一个循环(应用于每个循环)
正如您所说-如果您希望有机会使用该操作-首先将您的输出格式适合Azure Flow要求并从那里进行。
简而言之-尝试将架构定义更改为:
{
"type": "object",
"properties":
{
"values":
{
"type": "array"
"items": "..."
}
}
}