Все методы вы делаете всё равно - просто в случае REST API контроллер отдает уже готовый Json.
Интерфейс просто принимает и получает Json. Пользователь написал название проекта. Скажем, angular.js отправил json по http { name : projectname }} контроллеру серверного приложения. Контроллер принял, посмотрел, допустим, права пользователя на это - проверил с помощью модели "свободность" названия и отправил назад "да, можно" (ну точней, скорей записал в модель новое название проекта, если имя свободно). Всю логику вы как писали так и пишите.