我在Java中拥有服务器REST API。服务器代码的1.0版基本上执行了一些功能,然后用于将类X的对象返回给客户端1。 现在,在当前版本2.0中,相同的服务器代码将Response类对象返回到客户端2。请注意,此处未完成API版本控制。完全相同的代码只是不同之处在于,由于客户端2的服务器添加了一些新功能,因此不需要服务器1中的一些繁重功能。 问题是我合并了1.0和2.0并创建了一个二进制文件。我已经合并了包括功能在内的所有内容,但问题出在返回类型中。 请注意,所有客户端的url端点将相同,并且客户端代码无法更改。因此,根据客户端的类型,此API有什么方法可以在运行时返回两个不同的响应对象? 此外,服务器API可以在返回响应之前轻松识别客户端类型,但在收到请求时则不能。
服务器代码的版本1:
@POST
public T createOne(@BeanParam L locator, T item, @Context HttpServletRequest httpServletRequest, @Context HttpServletResponse httpServletResponse) { }
服务器代码的版本2:
@POST
public Response createOne(@BeanParam L locator, T item, @Context HttpServletRequest httpServletRequest, @Context HttpServletResponse httpServletResponse) { }
请注意,URI完全相同,我不想对其进行版本控制。