Контроллеры - это ваши проекции сущностей в сервисе (грубо говоря, объектов ваших классов бизнес-логики) на ресурсы веб-API, предоставляемого сервисом. Какие сущности проецировать на ресурсы, а какие - нет, целиком зависит от того, какое API вы хотите получить в конечном счете. В каких контроллерах это делать и стоит ли разбивать N контроллеров на M контроллеров - зависит от того, как вам удобно их реализовывать. Ну это примерно то же самое, что спросить "стоит ли разбивать 5 классов на 10?". У каждого контроллера - своя ответственность. Если вы четко понимаете ответственность каждого контроллера - разбивать не надо. Если вы перестали понимать и какой-то контроллер начал делать слишком много разных вещей - надо разбить.
Нужно понимать, что лучше сначала спроектировать интерфейсы взаимодействия крупных компонент: клиентов и сервисов, а потом уже эти интерфейсы реализовывать. В случае REST, вы сначала проектируете REST API, исходя из задач вашего приложения, а потом уже реализуете сервис и клиент.
методы реста post (добавление, обновление, удаление, просмотр)
вот этой фразы не понял.