Crucible REST API:无法添加审阅者

时间:2013-03-19 16:12:01

标签: java rest atlassian-crucible

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

/rest-service/reviews-v1/{id}/reviewers
用什么?文档未显示添加审阅者的有效请求。当你点击“展开”时它没有显示任何内容,只是说“逗号分隔的评论者”似乎没有用。

我试过了:

user1,user2

{"user1","user2"}

{reviewers:[reviewer:{"userName":"user1"},reviewer:{"userName":"user2"}]}

所有这些导致以下回复:

{"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)
...

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

user1user2是有效名称,因为当我对同一网址执行GET时,我可以在其他评论中看到它们。

有人有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

嗯,对于它的价值,以下是如何将评论者添加到现有评论中:

  1. 对Crucible URL进行POST:protocol:// server:port / context / rest-service / reviews-v1 / {id} / reviewers

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

  3. 抵制JSON-ify数据的冲动 - 没有引号,没有括号,标签等。它实际上是一个逗号分隔的要添加的用户名列表。

  4. 不要指望来自服务器的响应,它似乎返回204的状态代码。虽然这可以作为一个宁静的响应,但它似乎很奇怪,因为这个API的许多其他URL确实会返回一些东西执行POST以确认工作已完成。

  5. 为了公平对待Atlassian,文档会拼出要发送的数据:

    “以逗号分隔的评论者列表”

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

    希望能帮助别人!