Visualizações JSON personalizadas com Spring MVC e Jackson

O Spring MVC fornece suporte surpreendente pronto para uso para retornar seu modelo de domínio em JSON, usando Jackson nos bastidores.

No entanto, muitas vezes você pode achar que deseja retornar diferentes visualizações dos dados, dependendo do método que é chamado.

Por exemplo, uma visão resumida vs. detalhada em um objeto complexo.

Eu escrevi algumas classes que adicionam suporte para Jackson @JsonViewno Spring MVC, permitindo que a visualização seja modificada por método.

Por exemplo:

@Controller
public class BookService
{
@RequestMapping("/books")
@ResponseView(SummaryView.class)
public @ResponseBody List<Book> getBookSummaries() {}

@RequestMapping("/books/{bookId}")
public @ResponseBody Book getBook(@PathVariable("bookId") Long BookId) {}
}

Neste exemplo, getBookSummaries()retorna uma lista resumida de livros, em vez do conjunto completo.

O código completo está disponível no meu blog