自分でこれに遭遇しただけです。複数のアイテムのトランザクション投稿が必要なので、クライアントで繰り返すことは問題外です。コンセンサスは、通常のリソースとは別のパスを使用する必要があるということのようです。
http://chasenlehara.com/blog/creating-restful-web-services/(マルチリソース)
1つのリクエストで複数のアイテムを作成するRESTfulな方法
しかし、Jerseyでこれを行う方法についてはあまりわかりませんでした。結局のところ、それは非常に簡単です。GETリクエスト用のマルチエンティティコンバーターとリソースクラスがすでにあるはずです。サーバーがそれらを受信すると想定できるパスを指定する必要があります。
@Path("creatures")
@Stateless
public class CreaturesResource {
...
@POST
@Consumes({"application/xml", "application/json"})
public Response post(CreatureConverter data) {
Creature entity = data.resolveEntity(em);
postCreature(entity);
}
@POST @Path("multi")
@Consumes({"application/xml", "application/json"})
public Response postMulti(CreaturesConverter data) {
Collection<Creature> entities = data.getEntities();
for (Creature c : entities) {
postCreature(c);
}
}
その後、投稿する代わりに
<creature />
に
http://.../resources/creatures
投稿します
<creatures>
<creature />
<creature />
</creatures>
に
http://.../resources/creatures/multi