Добрый день! Я начинающий разработчик, в основном изучаю Java, но так случилось что на позицию Javaразработчика откликов на хх.ру практически нет. Как будто глухая стена. (Может, потому что спрос в нашем регионе не большой, а уж тем более никто не хочет возится с непонятным джуном без опыта работы, которому уже 33 года ) Но зато, не знаю почему, приходят приглашения на позицию PHP разработчика с тестовыми заданиями. Я их стараюсь делать – это расширяет кругозор, да и просто интересно. Собственно вопрос в чем. Пришло на почту тестовое, не могу понять "Собрать обработать и сохранить данные с FTP в PostgreSQL и написать API" – это все одно приложение на Laravel или это отдельный сервис? И вообще помогите найти вектор, в котором нужно двигаться? С RESTful API проблем нет, я делал на Java c Фреймворком SpringMVC принцип такой же. Что я уже сделал – развернул Laravel, в одном из контроллеров (это наброски, хочу перенести логику в сервис) написал логику: При обращении к контроллеру выполняется: 1. Метод "А" -> скачивает все zip архивы в папку (storage/app/temp/download) 2. Метод "В" -> распаковывает архивы в (storage/app/temp/extract) 3. И метод "С" -> парсит XML в JSON (немного костыльно так как проблема с namespace) PHP: $xml = simplexml_load_file(base_path() . $this->storageDir . $this->extractDir . '/' . $file); $ns = $xml->getNameSpaces(1); $child = $xml->children($ns['ns2']); $child = $child->children(); return json_encode($child); В задании написано – «Используйте преобразование XML -> JSON. Базу необязательно проектировать полностью. Достаточно основных, например id, jsonData, created_at.» Не пойму, в базу сохранять jsonDataкак единый текст в одном поле? То есть таблица будет - Id | json_data | created_at Спасибо за любую информацию.
Я не автор задания, моё субъективное мнение может быть ошибочным: API (CRUD) не имеет отношения к операциям с FTP и zip. Это интерфейс для редактирования таблиц(ы) с данными, куда ты отдельной и абсолютно независимой командой можешь заливать данные из архива. Я бы оценивал претендента на понимание базовых вещей (идемпотентность, остсутствие состояния, разделение на уровни и т.п.) А команда должна быть написана так, чтобы её было удобно вызывать по расписанию. Без самодеятельности, а так как это принято в Laravel. Т.к. штуки независимые, можно считать что это два приложения, хотя они могут быть в одном проекте
Спасибо! Я так понимаю - нужно сделать GRUD в котором отдельной командой можно сделать загрузку данных с FTP в базу(я так впринципе и делаю). Но я столкнулся с другой проблемой, XML там много и они ни все с одинаковыми данными, что бы добавить их в базу мне нужно создать отдельную сущность(то есть просмотреть таблицы и под них создать модели) правильно? --- Добавлено --- Сcылка на XML на всякий случай ftp://free:free@ftp.zakupki.gov.ru/fcs_regions/Kaliningradskaja_obl/notifications/currMonth