Play Framework:如何将复杂的REST请求绑定到Controller方法

时间:2012-02-02 20:12:33

标签: rest playframework

使用Play Framework处理REST API。

我需要支持包含多个“订单项”的“订单”的 RESTful请求

就“POST数据”而言,我认为:(为清晰起见,分成多行)

OrderId=123&OrderType=regular&
ItemNum=1&ItemID=78&quantity=2&discount=20&
ItemNum=2&ItemID=70&quantity=1&
ItemNum=3&ItemID=75&quantity=1&discount=10

请注意,我有一个问题要求所有“订单项”都附带一整套数据。在上面的示例中,第二项没有折扣。由于我不能“强迫”使用API​​的开发人员使用我自己的“包装器”,我想保留一些灵活性。

我想把它映射到类似的东西:

方法(int orderID,string orderType,Item []项目)

但是,我在文档中找不到合适的内容。

什么是正确的方法? 我应该构建自己的HTTP请求数据解析器吗? 格式化POST数据的任何替代方法 - 只要可以使用REST指南 - 也是可以接受的。

由于 最大

1 个答案:

答案 0 :(得分:2)

要映射Pojo对象数组,则需要将item.放在项目对象的前面。就像您在表单中映射对象一样。然后,您应该使用标准数组语法指定它是一个数组。

我会做类似以下的事情

orderId=123&orderType=regular&
item[0].ItemNum=1&item[0].ItemID=78&item[0].quantity=2&item[0].discount=20&
item[1].ItemNum=2&item[1].ItemID=70&item[1].quantity=1&
item[2].ItemNum=3&item[2].ItemID=75&item[2].quantity=1&item[2].discount=10