我是用Spring框架构建RESTful Web服务。我发送的JSON响应包含图像URL。这些图像URL在数据库中存储为相对路径,但为了避免紧密耦合的客户端,我希望响应包括绝对URL。
例如: 不要返回以下JSON:
我希望返回一个类似json的格式。
当然,图像字段可以出现在响应的任何位置,也可能出现在嵌套对象中。
拦截任何返回响应并将图像字段转换为绝对URL的最佳位置是什么?
我考虑创建一个特殊注释,例如@ImageURL用于图像字段,然后定义@ControllerAdvice,在方法beforeBodyWrite()中,遍历所有字段,并且每当我找到一个带有@ImageURL注释的字段时,我添加绝对路径。
这样可以轻松地定义新的图像字段,但它会随着每个请求/响应进行反射操作,我认为这不是好的做法。 有更好的建议吗?
例如: 不要返回以下JSON:
{"username": "user123", "profile_picture": "/user123_profile.jpg"}
我希望返回一个类似json的格式。
{"username": "user123", "profile_picture": "http://example.com/user123_profile.jpg"}
当然,图像字段可以出现在响应的任何位置,也可能出现在嵌套对象中。
拦截任何返回响应并将图像字段转换为绝对URL的最佳位置是什么?
我考虑创建一个特殊注释,例如@ImageURL用于图像字段,然后定义@ControllerAdvice,在方法beforeBodyWrite()中,遍历所有字段,并且每当我找到一个带有@ImageURL注释的字段时,我添加绝对路径。
这样可以轻松地定义新的图像字段,但它会随着每个请求/响应进行反射操作,我认为这不是好的做法。 有更好的建议吗?