Orbeon - 持久性 API 不支持 POST 创建表单数据吗?

Orbeon - Does the persistence API not support a POST to create form data?

persistence API documentation 说:

When using GET, PUT and DELETE to deal with resources, the body of HTTP requests just contains the resource to handle.

这似乎表明 POST 不是受支持的操作。文档只提到了 GET、PUT 和 DELETE。

我在别处读到(我不记得在哪里)可以 POST 到:

http://[SERVER]/orbeon/fr/[APP_NAME]/[FORM_NAME]/new

我已经测试过它并且它有效,但这没有使用 REST API。它 returns 一个供用户开始编辑表单数据的页面。这不是我真正想要的。我本来希望能够做到 POST 到

http://[SERVER]/orbeon/fr/service/persistence/crud/[APP_NAME]/[FORM_NAME]/data/

并且新创建的表单数据(包括其文档 ID)的位置将在响应的 Location header 中返回。但是做一个 POST returns 一个 500 错误。堆栈跟踪似乎表明某种验证异常。不支持吗?

正确,持久性API不支持POST,但是你can POST to the /new page,这是两个截然不同的东西。

所以,如果你想直接调用持久化API,并且想创建一个新文档,你需要"pick"一个文档id。您可以使用相同的代码 Form Runner 调用来完成此操作:secure:randomHexId(),在 SecureUtils.scala.

中实现