我正在开发基于Spring Data REST的服务。我们使用swagger创建前端代码的原因(通过SpringFox生成)我不得不停用HAL格式的返回,只有一个例外,它可以正常工作。
如果请求的结果是空列表,则响应如下所示
{
"links": [
{
"rel": "self",
"href": "http://localhost:9999/users"
},
{
"rel": "profile",
"href": "http://localhost:9999/profile/users"
}
],
"content": [
{
"rel": null,
"collectionValue": true,
"relTargetType": "com.example.User",
"value": []
}
]
}
如何将空列表作为内容?
答案 0 :(得分:0)
我不得不调整先前解决方案中提供的解决方案,以使用Spring HATEOAS 1.x引入的类型。
这是我正在使用的代码:
@Component
public class ResourceProcessorEmpty implements RepresentationModelProcessor<CollectionModel<Object>> {
@Override
public CollectionModel<Object> process(CollectionModel<Object> resourceToThrowAway) {
if (resourceToThrowAway.getContent().size() != 1) {
return resourceToThrowAway;
}
if (!resourceToThrowAway.getContent().iterator().next().getClass().getCanonicalName().contains("EmptyCollectionEmbeddedWrapper")) {
return resourceToThrowAway;
}
CollectionModel<Object> newResource = new CollectionModel<>(Collections.emptyList());
newResource.add(resourceToThrowAway.getLinks());
return newResource;
}
}