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
ドキュメントにリンクを文書化しようとすると、同じ問題が発生すると思います ( draft-kelly-json-halの例を参照)。_embedded