Не смотря на то что пример самого спринга работает без доп. аннотаций к классу/полям класса, решение оказалось очень простым:
@JsonSerialize
public class Tag {
@JsonProperty("id")
private long Id;
@JsonProperty("name")
private String Name;
@JsonProperty("createdAt")
private ZonedDateTime CreatedAt;
@JsonProperty("updatedAt")
private ZonedDateTime UpdatedAt;
....
При таком использовании:
@RestController
public class RESTAPI {
private static final AtomicLong counter = new AtomicLong();
@GetMapping("/tags")
Tag tags(@RequestParam(name = "name", defaultValue = "anytag") String tagName) {
return new Tag(this.counter.incrementAndGet(), tagName);
}
}