В Laravel уже есть три необходимых элемента: HTTP-клиент, кэш и очередь. Определите транспортное средство в сервисном классе, запомните URL и отобразите его через компонент Blade, о котором остальная часть приложения никогда не узнает.
Оберните поиск в небольшой сервис, оберните его в Cache::remember и привяжите в контейнере. С этого момента остальная часть кодовой базы вызывает метод и получает URL, не подозревая, что API был задействован.
Сервис, вызов кэша, компонент Blade и очередь задач для пакетной обработки. Все четыре — это скучные версии
Конфигурационный файл с ключом из .env, так что ничего чувствительного не попадает в систему контроля версий
HTTP-клиент вызывает API с VIN или спецификацией, а метод возвращает URL, которые нужны вашим представлениям.
Cache::remember с ключом, построенным на основе идентификатора транспортного средства. Списки затем отображаются полностью из кэша
Для полного прохода по каталогу отправьте задачу на каждое транспортное средство, чтобы импорт выполнялся в фоновом режиме и мог быть повторен
Встройте изображения автомобилей в свой продукт без лишней работы. Понятная документация, открытые SDK и готовые плагины подключаются к вашему стеку за минуты, а страница состояния показывает вживую, как чувствует себя API.
Один компонент x-vehicle-image принимает транспортное средство и ширину, и каждое представление в приложении его использует. Когда угол или формат изменяются позже, вы редактируете один файл
Приложения на Laravel обычно получают изображения транспортных средств через импортный скрипт. Кто-то пишет команду, которая загружает фотографии в хранилище, и с тех пор приложение содержит файловую систему, полную картинок транспортных средств, очередь, которая поддерживает её актуальность, и отчёт об ошибке каждый раз, когда отсутствует год модели.
Разрешение по запросу полностью исключает слой хранения. Идентификатор транспортного средства, который у вас уже есть, становится изображением, кэш делает его дешевым, а компонент Blade делает его невидимым. То, что раньше было импортным конвейером со своими собственными режимами сбоев, превращается в вызов метода, возвращающего строку.
Не отдельный. API — это обычный REST-конец, а HTTP-клиент плюс сервисный класс обычно требует меньше кода, чем настройка пакета.
Cache::remember с ключом, построенным на основе VIN или спецификации. Длинный TTL подходит, так как ответ меняется только тогда, когда меняется ваш каталог
Не требуется. URL указывают на наш CDN, поэтому хранение, резервное копирование и использование диска остаются на месте.
Http::fake в вашем тестовом случае. Поскольку сервис возвращает URL-адреса, большинство тестов должны только утверждать форму того, что возвращается
Отправьте задачу в очередь на каждое транспортное средство. Неудачные задачи повторяются самостоятельно, а импорт остается вне цикла запросов
Да. Оба получают URL-адрес от сервера как обычную строку, поэтому в интеграции ничего не меняется.
Расскажите, как транспортные средства хранятся в вашей схеме и где отображаются изображения. Мы вернемся с URL и эскизом сервиса.