Is there a way to simplify the structure returned from this controller:
@GetMapping
public Iterable getAll(@PathParam("page") int page)
It looks like you have to create custom JsonSerializer with @JsonComponent annotation.
I will copy the code for reference but you can see it here. PageImpl JSON serialization
@JsonComponent
public class PageImplJacksonSerializer extends JsonSerializer> {
@Override
public void serialize(PageImpl page,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException {
jsonGenerator.writeStartObject();
jsonGenerator.writeObjectField("content", page.getContent());
jsonGenerator.writeBooleanField("first", page.isFirst());
jsonGenerator.writeBooleanField("last", page.isLast());
jsonGenerator.writeNumberField("totalPages", page.getTotalPages());
jsonGenerator.writeNumberField("totalElements", page.getTotalElements());
jsonGenerator.writeNumberField("numberOfElements",
page.getNumberOfElements());
jsonGenerator.writeNumberField("size", page.getSize());
jsonGenerator.writeNumberField("number", page.getNumber());
//sort omitted
jsonGenerator.writeEndObject();
}
}