首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring @JsonView如何使用请求参数或标头

Spring @JsonView如何使用请求参数或标头
EN

Stack Overflow用户
提问于 2016-02-15 07:32:14
回答 1查看 1.6K关注 0票数 2

@JsonView

如何使用来自请求的like参数:

代码语言:javascript
复制
@JsonView(header="range")

当响应值时,读取请求头range以排除/包含某些字段

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 09:32:18

JsonView提供“静态”视图映射。因此,对于你的动态行为,你可以这样做:

代码语言:javascript
复制
// actual request handling is happened here
private ResponseEntity<SomeObject> processRequest();

// request handling with view limit in result
@JsonView(YourDefinedView.class)
@RequestMapping(value = "/request", headers={"range=include"}) 
public ResponseEntity<SomeObject> processWithView() {
    return processRequest();
}


// request handling without view (no headers specified) 
@RequestMapping(value = "/request")
public ResponseEntity<SomeObject> processWithoutView() {
    return processRequest();
}

这将映射您的客户端到相同的请求url,但取决于头,它将提供或不提供视图。而不是创建一组方法,这些方法将根据头信息使用不同的@JsonView

但是这样,您将只限制传输到客户端的数据,整个数据负载将发生在服务器上。例如,使用数据库和JPA,如果您不想从数据库中获取所有将以javax.persistence.NamedEntityGraphs结束的数据,这将改变应用程序的一般逻辑,并且最终会产生两种不同的方法。

如果您想公开带有字段列表的自定义标头,则需要序列化自定义DTO对象或Map<String, Object> (丑陋-丑陋-丑陋)或自定义HandlerMethodReturnValueHandler

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35403736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档