lem*_*ons 8 rest multiple-entries
我正在尝试使用Java在我的RESTful Web服务中开发一个方法,以使用POST请求将多个条目插入到MySQL数据库中.生成的RESTful Web Service有一种方法可以插入单个实体,但不能插入多个实体.例如,它接受:
<creature>
<sort>Mouse</sort>
<name>Pinky</name>
</creature>
Run Code Online (Sandbox Code Playgroud)
但不是(我想要的):
<creature>
<sort>Mouse</sort>
<name>Pinky</name>
</creature>
<creature>
<sort>Elephant</sort>
<name>Dumbo</name>
</creature>
Run Code Online (Sandbox Code Playgroud)
我猜你必须遍历实体,但不知道如何实现它,是一个可耻的新手.
刚碰到这个.我需要多个项目的交易帖子,因此在客户端上进行迭代是不可能的.共识似乎是您需要使用与普通资源不同的路径:
http://chasenlehara.com/blog/creating-restful-web-services/(多资源)
但是,我找不到关于如何用泽西岛这么做的话.事实证明,这很容易.您应该已经有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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后而不是张贴
<creature />
Run Code Online (Sandbox Code Playgroud)
至
http://.../resources/creatures
Run Code Online (Sandbox Code Playgroud)
你会发帖
<creatures>
<creature />
<creature />
</creatures>
Run Code Online (Sandbox Code Playgroud)
至
http://.../resources/creatures/multi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5920 次 |
最近记录: |