Используя api сервиса tvmaze.com необходимо построить систему поиска сериалов по названию и описанию. Также требуется сделать роутинг и переходы на страницы найденных сериалов. На страницах сериалов нужно обязательно отразить актеров, которые участвовали.
-
Для работы с api в репозитории будет находится фаил
src/api.js
с готовыми функциями для поиска и получения сериала по id. -
Сетевые запросы должны совершаться из middleware.
-
Для работы с асинхронными запросами нужно воспользоваться 3 экшенами
_REQUEST
,_SUCCESS
,_FAILURE
. -
Для создания всех экшенов использовать метод
createAction
из библиотекиredux-actions
. -
Для описания редьюсеров желательно использовать метод
handleActions
из библиотекиredux-actions
. -
Для каждого сериала url страницы должен выглядеть как /shows/:id где
id
— id сериала с сайтаtvmaze.com
. -
При переходе на страницу сериала из поиска должен совершать сетевой запрос за информацие о сериале, и в это время нужно отражать надпись, сообщающую о том, что происходит загрузка.
-
При поиске на странице поиска так же должна выводиться надпись о том, что происходит загрузка, пока происходит себевой запрос.
-
Выдача результатов поиска должна содержать картинки, краткое содержание и ссылку на страницу сериала.
Поле summary
в ответах на запросы api.tvmaze.com
содержит описание вместе с
html тегами. Чтобы вывести html в реакте, воспользуйтесь методом
dangerouslySetInnerHTML:
<div dangerouslySetInnerHTML={{__html: summary}} />
- Посмотрите пример работы, чтобы понять, как будет выглядеть финальное приложение.
- Изучите
cypress/integration/homework.spec.js
чтобы понять какой функционал должен быть реализован. - Начните работу с
AppRouter.js
. В нем необходимо определить роутер вашего приложения. - Реализуйте страницу поиска в файле
Search.js
вам также потребуется реализовать компонентShowPreview
. - Реализуйте страницу шоу
ShowPage
. - Создайте редьюсеры
show
иsearch
. Используйте методcombineReducers
. Для начала можете захардкодить данные. - Создайте стор в
store.js
. - Подключите
redux
к вашим компонентам при помощиconnect
. - Реализуйте
searchMiddleware
иshowMiddleware
. В них вы будете выполнять запросы на сервер.