首页 > 解决方案 > 如何使用 REST API 将文件附加到电子邮件

问题描述

我正在处理来自 REST API 的电子邮件。
我能够在系统中创建电子邮件并对其进行更新。
问题在于将文件附加到电子邮件以更正电子邮件正文中的图像。

将文件附加到记录的端点如下所示:

http://<Base endpoint URL>/<Top-level entity>/<Key value 1>/<Key value 2>/files/<File name>

电子邮件的问题在于,电子邮件的键是 NoteID 字段,只能使用 $custom 参数访问,请求如下:

https://baseurl/18.200.001/Email?$filter=From eq 'test@email.com'&$custom=Message.NoteID

此请求将返回如下响应

[
    {
        "id": "50bd83f1-b5bb-49f2-8ca9-6e55d6e10463",
        "rowNumber": 1,
        "note": "",
        ...
        ...
        ...
        "custom": {
            "Message": {
                "NoteID": {
                    "type": "CustomGuidField",
                    "value": "9daca267-4bbd-e911-81ee-0259459e71e6"
                }
            }
        },
        "files": []
    }
]

NoteID 对应于电子邮件的浏览器 URL 中显示的 ID 在此处输入图像描述

问题是,当我尝试使用响应中的 NoteID 或 ID 向该电子邮件发送附加文件的请求时,我总是收到“没有实体满足条件。”请求分析器中的错误消息。

还有其他方法可以使用 REST API 附加文件吗?

标签: acumaticaacumatica-kb

解决方案


在查看了 OpenAPI 2.0 规范之后,比较了将文件附加到不同实体的规范并检查了实体的密钥,结果发现实体的密钥必须在 Web 服务端点中指定。
在电子邮件实体的情况下,关键字段是NoteID并且它没有在端点中指定,甚至在 Web 服务端点中的字段查找中也没有显示。
但幸运的是,系统允许手动写NoteID入网格并保存端点,如下所示:

在此处输入图像描述

这个实体甚至通过了验证 在此处输入图像描述


推荐阅读