【发布时间】:2017-10-12 10:40:27
【问题描述】:
我有休息服务,不是休息。 该模块是无状态的,只是暴露了一些剩余端点:接收请求,对其进行转换,调用外部端点,然后编写 Json 响应。
问题是响应很冗长,有些字段很大。
我被要求在请求级别提供过滤,以便响应仅包含请求的数据。
举个例子:我暴露的方法是一个POST,接受一个BASE64编码的图片,响应也可以包含图片,还有很多其他字段:
request: { image="<here a long BASE64 encoded request>"}
response: {result="success",
message="it was a success",
responseImage="<another base64 encoded image>",
longArray1=[
{first="...", second="...", third="..."},
{first="...", second="...", third="..."},
....many!
],
longArray2=[
{first2="...", second2="...", third2="..."},
{first2="...", second2="...", third2="..."},
....many!
]
}
我想要的是避免重新发明轮子。是否有已知的查询模式(在 queryString 或 Json 请求中添加内容,以及如何),以便消费者可以提前选择接收哪些字段作为响应,并在响应中节省带宽?
【问题讨论】:
-
您应该向我们提供您的想法。那么我们是否有更好的方法会更容易说。
-
我在查询字符串中传递了一些参数(最多 3 个),并使用该值来过滤响应。我想实现一个过滤器类,它在过滤器映射中收集,这样当我填充响应时,我只有一个参数(过滤器对象)并询问他是否必须包含当前值。跨度>
-
问题是一些过滤器必须在参数级别操作(如响应图像过滤器:图像只是进或出)和其他在数组值级别(例如,如果 longArray1 的过滤器是 FAILED_ONLY,如果“first”是“FAILED”,我必须显示该项目,如果它是“PASSED”,我必须隐藏它)。还在开发中(其实挂了,我还有更紧急的事情要做)
标签: java json rest post design-patterns