【问题标题】:REST API, POST Rich Text Item to Domino serverREST API,将富文本项发布到 Domino 服务器
【发布时间】:2019-03-08 20:39:05
【问题描述】:

我正在尝试使用我的 domino lotus notes 服务器 (9.0.1FP8) 的 REST-API

它适用于简单的文本字段,但如果我尝试将富文本项添加为 json,则 domino 服务器仅接收文本字段,而富文本字段为空。

我尝试使用 Postman 和对 http://localhost/Test/JSON_Vie...s/name/List?form=mainForm 的 Postrequest, 我发送 json 的地方

{
    "title":"test rich text",
    "artist":"rich texter",
    "ntracks":1,
    "attachments": {
        "type": "multipart",
        "content": [
            {
                "contentType": "multipart/alternative; Boundary=\"0__=4EBB0925DFBB40F18f9e8a93df938690918c4EBB0925DFBB40F1\"",
                "contentDisposition": "inline"
            },
            {
                "contentType": "text/plain; charset=US-ASCII",
                "data": "test rich text",
                "boundary": "--0__=4EBB0925DFBB40F18f9e8a93df938690918c4EBB0925DFBB40F1"
            },
            {
                "contentType": "text/html; charset=US-ASCII",
                "contentDisposition": "inline",
                "data": "<html><body><font size=\"2\" face=\"sans-serif\"><b>test rich text</b></font></body></html>",
                "boundary": "--0__=4EBB0925DFBB40F18f9e8a93df938690918c4EBB0925DFBB40F1"
            }
        ]
    }
}

掩码 mainForm 具有文本字段“title”、“artist”、“ntracks”和富文本字段“attachments”。

如何以 json 格式发送图像,什么是“边界”?

你有什么想法吗,怎么了?

【问题讨论】:

  • 您使用的是 DAS 还是 ExtLib?
  • 你试过这样简单的事情吗? "attachments":{"contentType":"text/html", "data":"测试富文本", "type":"richtext"}
  • @ThomasAdrian:我只是想测试一下简单的 html 代码。但实际上我想为每个 json 发送一个图像,但我不知道该怎么做。我使用 DAS。
  • @PerHenrikLausten 我尝试了您的简单 json 附件,但该字段仍然为空。
  • @PerHenrikLausten:这真的很有趣。如果我在现有文档上使用 put 并在 json 中添加我的附件字段,它就可以工作!在 POST 中是否有可能?

标签: rest post lotus-domino


【解决方案1】:

根据documentation from IBM,您需要使用 PUT(而不是 POST)来更新字段。

【讨论】:

  • 这里又是:www-10.lotus.com/ldd/ddwiki.nsf/… 有一个示例可以将附件添加到 POST 请求。那么为什么它只适用于每个 PUT 的现有文档?
  • 我想文档可能更清晰,但它按设计工作。要创建一个新文档,您需要 POST 到文档集合资源(URL 中没有 UNID)。要更新现有文档,请 PUT 到文档资源(在 URL 中使用 UNID)。 PUT 和 POST 之间的这种区别与 REST 最佳实践一致。
  • 是的,@Dave Delay 我了解 POST 和 PUT 之间的区别。但我不明白为什么我不能创建(发布)带有附件的单个文档。所以我必须先对文本字段发出 POST 请求,然后我必须发出 PUT 来添加附件?
  • 我在您的原始帖子中没有看到附件。只有三个部分(多部分/替代,文本/纯文本和文本/html)。通过正确的输入,您绝对可以在 POST 请求中创建附件。既然您已经接受了这个答案,也许您应该创建另一个关于附件的问题。
  • @DaveDelay :这是正确的,我首先尝试为富文本字段“附件”发布简单的 html 代码以确保它有效!但事实并非如此。我对图像作为附件的 POST 请求看起来像 { "title":"bild", "artist":"bild", "attachments":{ "type":"multipart", "content":[ { "contentType":"image/png", "data":"iVBORw0KGgoAAAANSUhEUgAAARwAAADJCAIAAAB+EhqfAAAAAXNSR...", "contentTransferEncoding":"base64" } ] } }
【解决方案2】:

经过一点尝试,我现在知道出了什么问题。如果我在地址 http://localhost/Test/JSON_Views.nsf/api/data/documents?form=mainForm 上进行 POST,它适用于附件。如果我使用http://localhost/Test/JSON_Views.nsf/api/data/collections/name/List?form=mainForm&amp;computewithform=true,附件字段将被忽略。但也许你可以解释一下,额外的字段边界是什么,我是否可以通过附件名称设置 contentLocation?

【讨论】:

  • 根据您的 cmets,您似乎能够发布带有附件的文档。那挺好的。如果您有后续问题,我建议您开始一个新线程。当问题尽可能狭窄并且每个问题都有明确的答案时,StackOverflow 效果最好。使用答案来提出后续问题是令人困惑的。
猜你喜欢
  • 2020-03-21
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多