私は RESTful API を構築しており、データの 2 つの異なるビューをレンダリングできるようにする必要があるユース ケースがあります。内部で使用できるものと、外部に公開するものです。さらに、私の API は XML と JSON の両方をサポートする必要があります。
私の JSON 応答では、Jackson を使用すると非常に簡単に実行できます。JsonViews の機能を使用して、条件付きで JSON 応答にフィールドを含めることができます: http://wiki.fasterxml.com/JacksonJsonViews
まず、ビューを指定する単純なクラスを作成する必要があります。
public class Views {
public static class External {}
public static class Internal extends External {}
}
ビュークラスを使用して、フィールドに属するビューに次のように注釈を付けるだけです。
@JsonView(Views.External.class)
private String external = "External";
@JsonView(Views.Internal.class)
private String internal = "Internal";
その後、オブジェクトをシリアル化し、使用するビューを指定できます。
ObjectMapper jsonMapper = new ObjectMapper();
ObjectWriter externalWriter = jsonMapper.writerWithView(Views.External.class);
String externalJson = externalWriter.writeValueAsString(new ResponseObject());
これは JSON ではうまく機能しますが、残念ながら XML では現在サポートされていません。XMLで同じことを達成するにはどうすればよいですか? XML 変換に必要であれば、喜んで JAXB を使用します。