REST API-对不同的参数使用相同的URI和相同的方法来调用不同的方法

时间:2018-12-12 08:50:25

标签: java rest web-services

我有一个棘手的情况,我需要使用相同的URI来调用POST操作,一个使用单个对象,另一个使用相同对象类型的数组。问题是我无法更改URI。 例如

POST /my-services/v1/users with single user object as part of request body

POST /my-services/v1/users with array of user objects as part of request body

我无法更改第二次操作的URI,例如/ my-services / v1 / 批量用户

所以,问题是,如何在REST API中添加此类方法?

2 个答案:

答案 0 :(得分:0)

在大多数JSON映射器中(例如Jackson),您可以设置属性ACCEPT_SINGLE_VALUE_AS_ARRAY,该属性基本上会将单个对象视为数组,因此您可以一次定义端点(用于集合)。

然后,您将实现端点,因为它始终以Collection作为输入,即使客户端发送单个JSON对象,它也将由mapper处理。

答案 1 :(得分:0)

我会说添加另一个参数。

例如,

POST ... type=single&req=(user object)...(第一个)。

POST ... type=array&req=[user object]...用于第二个。

使用开关的大小写或是否在服务器上检查类型。


按照Tim所说的发送数据并在服务器上检查类型。

相关问题