通过mvc中的内容协商进行版本控制



我有两个get API,它们具有相同的请求、路径和响应,其中一个已经存在,另一个是新创建的。

@GET
@Path("/{id}/export")
public Response exportVersion1(@PathParam("id") String id, @QueryParam("format") final String format)
@GET
@Path("/{id}/export")
@Consumes({"application/vnd.com.abc.v2+json"})
public Response exportVersion2(@PathParam("id") String id, @QueryParam("format") final String format)

在给定内容类型为application/vnd.com.abc.v2+json时,我可以调用第二个API,但如果没有给定内容类型,那么也会调用第二种。

我想将第一个作为默认设置,不想更改/添加到它,因为它绑定到客户端使用的UI。我只能对第二个API进行修改,请给出任何建议。

您可以设置默认的内容类型。对于弹簧5,这将是:

public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.TEXT_PLAIN); 
}

相关内容

  • 没有找到相关文章

最新更新