Ответить на главный вопрос. Нет, не совсем. Ответить на второстепенные вопросы. Ничего из вышеперечисленного.
Архитектуры на основе REST плохо вписываются в стандартную трехуровневую модель. Упрощенный вид трехуровневой модели выглядит следующим образом:
Уровень представления <-> Бизнес
Логический уровень <-> Уровень данных
Подумайте на мгновение, разбив презентационный слой на две части,
Уровень рендеринга <-> Пользовательский интерфейс
Содержание <-> BLL <-> DAL
Если вы думаете о обычном веб-приложении, браузер берет содержимое HTML, CSS и Javascript и визуально отображает их в браузере. Это уровень контента пользовательского интерфейса, к которому применяются ограничения REST. Это наиболее очевидно, если вы думаете об ограничении гипермедиа. REST-интерфейсы предназначены для навигации так же, как пользовательские интерфейсы. Интерфейсы REST возвращают представление ресурсов.
Интерфейсы REST должны возвращать содержимое пользовательского интерфейса, которое не зависит от того, как будет отображаться пользовательский интерфейс.
Клиент REST <-> Интерфейс REST <-> BLL <-> DAL
По моему мнению, клиенты REST бывают двух видов: либо движки рендеринга очень тонкого носителя (например, веб-браузеры), либо скребки экрана (пауки, гибридные приложения). Я свободно использую термин «скребок экрана», потому что, если вы выбираете медиа-типы разумно, клиенту будет тривиально вычистить данные из содержимого вашего пользовательского интерфейса.
Любая попытка представить уровни бизнес-логики как интерфейсы REST обычно имеет несколько последствий. В итоге разработчики спрашивают, как выполнять транзакции в REST. В итоге они создают огромное количество связи между клиентом и интерфейсом BLL из-за необходимости предоставлять семантически богатые представления. Они забывают все об ограничении гипермедиа, потому что большая часть этой информации о связях недоступна на уровне бизнес-логики. И они начинают жаловаться на снижение производительности HTTP и текстовых типов контента.