Задача: Необходимо разработать приложение для парсинга, сохранения и вывода новостей. Парсинг Парсер должен обращаться к RSS странице новостей http://static.feed.rbc.ru/rbc/logical/footer/news.rss. Периодичность запуска парсера - 1 минута, одновременный запуск не должен происходить, если уже запущен другой экземпляр. Каждая новость из ленты должна сохраняться в локальную базу данных со следующим набором полей:
- Название
- Краткое описание
- Дата и время публикации
- Автор (если указан)
- Изображение (если есть; сам файл должен сохраняться в локальное хранилище)
Каждый запрос парсера должен логироваться в базу данных. Информация для логирования:
- Дата и время
- Request Method
- Request URL
- Response HTTP Code
- Response Body
- Время выполнения запроса в миллисекундах
Вывод новостей реализуется через API сервис. GET параметры, влияющие на вывод:
- Страница (для пагинации)
- Сортировка по дате публикации
- Список возвращаемых полей новости
- Фреймворк Laravel.
- MySQL/PostgreSQL база данных.
- Документирование API сервиса в Swagger (не обязательно, но будет плюсом)
php artisan migrate
php artisan rbc:parse
go to http://localhost/api/articles?page=1&sort[0][field]=published_at&sort[0][direction]=desc