如何在Azure Logic Apps自定义连接器中返回文件

时间:2018-06-14 02:19:37

标签: azure azure-logic-apps

我的自定义连接器中有一个响应200 OK和一个文件(pdf)的操作。在我的OpenAPI / Swagger 2.0文件中,它的定义如下:

    "/blogs/{blogId}/articles/{articleId}.pdf" : {
        "get" : {
            "operationId": "GetArticlePdf",
            "summary": "Find a article PDF by id",
            "description": "Returns a single article PDF",
            "produces":[
                "application/pdf"
            ],
            "parameters":[
                {
                    "name": "articleId",
                    "in": "path",
                    "type": "string",
                    "format": "uuid",
                    "description": "Article Id",
                    "required": true
                },
                {
                    "name": "blogId",
                    "in" : "path",
                    "required": true,
                    "type": "integer"
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "schema":{
                        "type":"file"
                    }
                },
                "404": {
                    "description": "Not Found"
                },
                "400": {
                    "description": "Bad Request"
                }
            }
        }
    }

但是当我在逻辑应用程序中使用此自定义连接器时,此操作(文件)的响应未在后续步骤中列在动态内容选择器中。

如何定义操作以便我可以在后续步骤中将其响应文件用作输入?

2 个答案:

答案 0 :(得分:0)

您可以创建blob(操作)并将文件的响应添加到blob内容。

尝试编写表达式来获取动作结果,如: @body('your_custom_connector_name')并将内容类型附加到blob内容。

有关详情,请参阅此简单case

答案 1 :(得分:0)

你看起来很明智。

请注意,虽然来源可能是http和LogicApps的文件,但它只是@body元素所代表的http内容。

我希望它是Base64编码的,除非你专门编写服务来做其他事情。