Crucible REST API:无法添加审阅者

Jon*_*Jon 5 java rest atlassian-crucible

我正在尝试使用Crucible REST API将审阅者添加到我刚创建的评论中(也使用REST).根据Atlassian文档,我应该发布一个POST:

/rest-service/reviews-v1/{id}/reviewers
Run Code Online (Sandbox Code Playgroud)

什么?文档未显示添加审阅者的有效请求.当你点击"展开"它没有显示任何内容时,它只是说"逗号分隔的评论者"似乎不起作用.

我试过了:

user1,user2

{"user1","user2"}

{reviewers:[reviewer:{"userName":"user1"},reviewer:{"userName":"user2"}]}
Run Code Online (Sandbox Code Playgroud)

所有这些导致以下响应:

{"code":"NotFound","message":"The user named '{\"user1\"' is not a Crucible user.","stacktrace":"com.atlassian.crucible.spi.services.NotFoundException: The user named '{\"user1\"' is not a Crucible user.
at com.atlassian.crucible.spi.impl.DefaultReviewService.getUser(DefaultReviewService.java:2011)
at com.atlassian.crucible.spi.impl.DefaultReviewService.access$3500(DefaultReviewService.java:95)
at com.atlassian.crucible.spi.impl.DefaultReviewService$32.doInTransaction(DefaultReviewService.java:1973)
at com.atlassian.crucible.spi.impl.DefaultReviewService$32.doInTransaction(DefaultReviewService.java:1965)
at com.atlassian.fisheye.spi.impl.DefaultTxTemplate.execute(DefaultTxTemplate.java:123)
at sun.reflect.GeneratedMethodAccessor1317.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
...
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪一直持续......

user1并且user2是有效的名称,因为当我对相同的URL执行GET时,我可以在其他评论中看到它们.

有人有主意吗?

谢谢!

Jon*_*Jon 3

好吧,无论如何,以下是如何将审阅者添加到现有审阅中的方法:

  1. 向 Crucible URL 发送 POST:protocol://server:port/context/rest-service/reviews-v1/{id}/reviewers

  2. 帖子正文应包含文字值:user1,user2,user3

  3. 抵制对数据进行 JSON 化的冲动 - 没有引号、没有括号、标签等。它实际上是要添加的以逗号分隔的用户名列表。

  4. 不要期待服务器的响应,它似乎会返回状态代码 204。虽然这是可以接受的安静响应,但它看起来很奇怪,因为当您执行 POST 来确认时,此 API 的许多其他 URL 确实会返回一些内容工作已经完成。

公平地说,Atlassian 的文档确实详细说明了要发送的数据:

“逗号分隔的审阅者列表”

但文档可能应该用一个示例进行更新,因为我认为某人(至少对我来说)假设在使用 RESTful API 时,他们需要将数据格式化为 JSON 是很正常的。此外,文档应该更谨慎地说明服务器不会在成功时发送响应。也就是说,恕我直言。

希望对某人有帮助!