首页 > 解决方案 > REST API-对不同的参数使用相同的URI和相同的方法来调用不同的方法

问题描述

我有一个棘手的情况,我需要使用相同的 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/ bulk -users

那么,问题是,如何在 REST API 中添加这些方法?

标签: javarestweb-services

解决方案


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

然后你实现你的端点,因为它总是将 aCollection作为输入,即使客户端将发送单个 JSON 对象,它也会由映射器处理。


推荐阅读