5

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

そのスタックトレースはどんどんと続きます...

user1同じURLに対してGETを実行するとuser2、他のレビューでそれらを見ることができるため、有効な名前です。

誰かアイデアはありますか?

ありがとう!

4

1 に答える 1

3

参考までに、既存のレビューにレビュアーを追加する方法は次のとおりです。

  1. Crucible URL に POST を実行します: protocol://server:port/context/rest-service/reviews-v1/{id}/reviewers

  2. 投稿の本文には、リテラル値を含める必要があります: user1,user2,user3

  3. データを JSON 化する衝動に抵抗してください。引用符、括弧、ラベルなどは使用しないでください。文字通り、追加するユーザー名のカンマ区切りのリストです。

  4. サーバーからの応答を期待しないでください。ステータス コード 204 が返されるようです。これは安静な応答として許容されますが、この API の他の多くの URL は POST を実行して確認するときに何かを返すため、奇妙に思えます。作業は完了しました。

アトラシアンに公平を期すために、ドキュメントには送信されるデータが詳しく記載されています。

「コンマ区切りのレビュアーのリスト」

しかし、誰かが (少なくとも私にとっては) RESTful API を使用する場合、データを JSON としてフォーマットする必要があると想定するのは普通だと思うので、ドキュメントはおそらく例で更新する必要があります。また、ドキュメントは、サーバーが成功時に応答を送信しないことをより慎重に説明する必要があります。つまり、私見です。

それが誰かを助けることを願っています!

于 2013-03-20T04:02:56.887 に答える