如何使用 Spring REST Docs 记录子文档中的链接?
给定以下 JSON 文档:
{
"links": {
"alpha": "http://example.com/alpha",
"beta": "http://example.com/beta"
}
}
我可以按照参考文档中的建议links
通过实现自定义LinkExtractor来记录(我的工作实现与HalLinkExtractor非常相似):
mockMvc.perform(get("/"))
.andDo(document("root-resource",
links(customLinkExtractor(),
linkWithRel("alpha").description("Link to the Alpha resource"),
linkWithRel("beta").description("Link to the Beta resource")
)
));
但是,我的 JSON 文档links
在其他地方包含子文档,例如
{
"links": {
"alpha": "http://example.com/alpha",
"beta": "http://example.com/beta",
},
"foo": {
"links": {
"gamma": "https://gamma.com/",
"delta": "https://delta.com/"
}
}
}
如何记录与子links
文档关联的文档?foo
理想情况下,我想做类似的事情:
mockMvc.perform(get("/"))
.andDo(document("root-resource",
links(customLinkExtractor(),
linkWithRel("alpha").description("Link to the Alpha resource"),
linkWithRel("beta").description("Link to the Beta resource")
),
links(jsonPath("$.foo"),
customLinkExtractor(),
linkWithRel("gamma").description("Link to the Gamma resource"),
linkWithRel("delta").description("Link to the Delta resource")
)
));
自然,这是行不通的,因为没有jsonPath(..)
方法。还有哪些其他选择?
我猜如果您使用HalLinkExtractor
and 尝试在_embedded
子文档中记录链接,也会出现同样的问题(请参阅draft-kelly-json-hal中的示例)。