【发布时间】:2023-03-22 22:56:01
【问题描述】:
在我的应用程序中,我使用 Spring MVC 共享 REST api,用户可以在他们的自定义应用程序中使用这些 API。假设我在 Controller 类中有一个端点:
@GET
@Path("/getNumber")
@Produces({ MediaType.TEXT_PLAIN })
public String getNumber(Long id) {
return service.getNumber(id);
}
哪个响应仅作为 TEXT_PLAIN 提供。例如,如果其中一位客户说当他以纯文本形式获得响应并且端点应该返回 json/或应该有可能以 json 形式返回响应时,他的应用程序将无法工作,会发生什么?因此,当我将另一个 MediaType 添加到注释 @Produces 时,是否会导致使用此端点的其他用户自定义应用程序出现问题?因为对于前。在他们的应用程序中,客户端可能期望以纯文本形式响应,并且通过以 json 形式获取响应,将无法正确处理响应? 如果添加此 MediaType 可能会导致问题,我该如何考虑使用此端点的用户自定义应用程序?我是否应该创建类似的端点,但是这个端点将具有 MediaType APPLICATION_JSON,或两者兼有,并为 ex 添加。端点路径中的“/v2”,还是有更好的解决方案?
@GET
@Path("/v2/getNumber")
@Produces({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON })
public String getNumber(Long id) {
return service.getNumber(id);
}
【问题讨论】:
标签: java spring rest spring-mvc