В части II я дал краткий обзор FastAPI, чтобы быстро ввести вас в курс дела. В этой части книги будем углубляться в детали. Мы создадим веб-сервис среднего размера для доступа к данным о криптидах — выдуманных существах и таких же выдуманных исследователях, которые их ищут, а также для управления ими.
Полный сервис будет иметь три уровня, как я говорил ранее:
• веб-уровень — веб-интерфейс;
• сервис — бизнес-логика;
• данные — драгоценная ДНК всей конструкции.
Кроме того, веб-сервис будет содержать следующие межуровневые компоненты:
• модель — определения данных Pydantic;
• тесты — модульные, интеграционные и комплексные тесты.
В дизайне сайта будут учтены следующие моменты.
• Что должно располагаться на каждом из уровней?
• Что передается между уровнями?
• Можем ли мы позже изменить/добавить/удалить код, ничего не нарушив?
• Если работа чего-то прервется, как мне это найти и исправить?
• Как обстоит ситуация с безопасностью?
• Может ли сайт масштабироваться и сохранять работоспособность?
• Можно ли сделать все это как можно более понятным и простым?
• Почему я задаю так много вопросов? Почему, почему?