[#] [Перевод] Чистая архитектура в Python: пошаговая демонстрация. Часть 5
habrabot(difrex,1) — All
2017-02-01 10:30:03


![][1]
**Содержание**
* [Часть 1][2]
* [Часть 2][3]
* [Часть 3][4]
* [Часть 4][5]
* _Часть 5_



### REST-слой (часть1)



**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