![][1]
**Содержание**
* [Часть 1][2]
* [Часть 2][3]
* [Часть 3][4]
* [Часть 4][5]
* _Часть 5_
**Git tag:**[ Step12][6]
Наступил завершающий этап нашего приключения за чистой архитектурой. Мы создали модели предметной области, сериализаторы, сценарии и хранилище. Но пока отсутствует интерфейс, который склеивает все вместе: получает параметры вызова от пользователя, инициализирует сценарий с хранилищем, выполняет сценарий, который получает модели предметной области из хранилища, и преобразует их в стандартный формат. Этот слой может быть представлен с помощью множества интерфейсов и технологий. Например, с помощью интерфейса командной строки (CLI): получать параметры с помощью ключей командной строки и возвращать результат в виде текста на консоли. Но та же базовая система может быть использована и для web-страницы, которая получает параметры вызова из набора виджетов, выполняет описанные выше шаги, и разбирает возвращенные данные в формате JSON для отображения результата на той же странице.
Вне зависимости от выбранной технологии для взаимодействия с пользователем, сбора входных данных и предоставления выходных результатов, нам необходимо взаимодействовать с недавно созданной чистой архитектурой. Поэтому сейчас мы создадим слой для вынесения наружу API для работы с HTTP. Реализовано это будет при помощи сервера, который предоставляет набор HTTP-адресов (конечных точек API), при обращении к которым возвращаются некоторые данные. Такой слой обычно называют REST-слой, потому что, как правило, семантика адресов схожа с рекомендациями REST.
[Читать дальше →][7]
[1]:
https://habrastorage.org/files/cdc/20d/22d/cdc20d22dcfa407ca7961b270d93cf78.png
[2]:
https://habrahabr.ru/post/319126/
[3]:
https://habrahabr.ru/post/319202/
[4]:
https://habrahabr.ru/post/319898/
[5]:
https://habrahabr.ru/post/320662/
[6]:
http://github.com/lgiordani/rentomatic/tree/step12
[7]:
https://habrahabr.ru/post/320928/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut