Тёмный

Laravel API. All you need! Json Resource, Resource Collection, Cache, Rate Limit 

Просто о Laravel. CutCode
Подписаться 14 тыс.
Просмотров 30 тыс.
50% 1

В сегодняшнем мы изучим web api на Laravel. Подробно рассмотрим как это делать и реализуем простое api с разбивкой на версии, научимся использовать Postman
#api#laravel#cutcode
---------------------------------------------------------------------------------
🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇
learn.cutcode.dev/
❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - t.me/laravel_chat
🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - cutcode.ru/chat-bot
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение
01:33 Postman и обзор проекта, с которым будем работать
03:30 Корректируем route
06:33 Добавляем контроллер
Всем поклонникам Laravel привет! В эфире Cutcode и сегодня мы затронем тему web api. Сделаем публичные api, чтобы понять все базовые особенности реализации на Laravel, тем самым мы дадим доступ остальным пользователям к данным который мы предоставляем, а api будет интерфейсом для получения этих данных. В наше время web api крайне важен - практически все приложения делаются по концепции api first. Это отдельный проект, а уже далее веб-сайт мобильные приложения и так далее, который взаимодействуют с api и получают нужные данные и работают с ними. Так устроен современный мир, такие приложения получаются более быстрыми, гибкими и их проще поддерживать. Либо api даёт пользователям в открытом либо закрытом доступе получить данные о курсе валют, погоде, состояние своих данных в том или ином сервисе. А вы уже сами решайте как их использовать.
У нас будет простой api, с фантазией у меня не так все хорошо - мы будем хранить историю апдейтов версий Laravel и давать возможность получить текущую последнюю версию. То есть дадим остальным пользователям используя наш api получить данные по версионности Laravel.
Что нас ждет?
1.Сделаем api с разбивкой на версии.
2.Разберемся с ресурсами и ресурс-коллекциями.
3.Добавим кэширование запросов и observer для контроля кэша.
4.Разберемся средь лимитом ограничением на запросы к api.
Ну меньше слов больше практики погнали. Друзья я для тестирования api буду использовать программу postman и вам так же рекомендую. Здесь удобно менять http методы, задавать заголовки, устанавливать параметры, добавлять токен и также отслеживать ответ. Смотреть сколько времени потребовалось на получение ответа и сколько байт он занимает. Поэтому рекомендую использовать postman либо какой-либо другой аналог.
Далее вернемся к нашему Laravel приложению и посмотрим что у нас есть на старте. Я уже создал таблицу version она простая, здесь по факту два необходимых поля - это title, тэг обновления и relise date,то есть дата обновления и наполнил эту таблицу тестовыми данными, исходя из последних апдейтов laravel. Ну и само собой добавил модель для этой таблицы она простая, здесь ничего особенного нет. Друзья прежде чем начать - на что необходимо обратить внимание - на то что в laravel по умолчанию есть api роуты. В директорий routes есть file api.php и здесь уже задам один route пример. Мы его пока что удалим, он нам не потребуется.
---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:
• Laravel API. Все что н...
🔔 подпишитесь на RU-vid-канал: / @cutcoderu
📼 Курс по Laravel с нуля:
• Курс по Laravel 8 обуч...
Laravel API. Все что необходимо! Json Resource, Resource Collection, Cache, Rate Limit
---------------------------------------------------------------------------------
🔗 наш сайт: cutcode.dev/
📷 наш instagram: / cutcoderu
📱 Наш telegram-канал: t.me/laravel_cutcode

Опубликовано:

 

16 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 104   
@CutCodeRu
@CutCodeRu 9 месяцев назад
🎁 Для вас есть подарок, забирайте - cutcode.dev/l/4pxn 🎁
@inocoweb
@inocoweb 2 года назад
Нужно больше про API, целый проект нужен именно про APIшку.
@nt2548
@nt2548 2 года назад
+
@CutCodeRu
@CutCodeRu 2 года назад
После нг решим какой проект будем делать
@maksimchernyshev6587
@maksimchernyshev6587 2 года назад
+
@score_87
@score_87 2 года назад
+
@Thunderstormplus
@Thunderstormplus 2 года назад
Согласен!
@user-eq5rm5nh4h
@user-eq5rm5nh4h 2 года назад
Хорошо что хоть кто-то в RU сегменте пилит качественный контент
@aldwynconjurer9449
@aldwynconjurer9449 2 года назад
Смотрю только второе видео этого автора. Но то что я увидел - уже заслуживает лайка, подписки и комментария. Материал базовый(с того что я смотрел). Подобного в инете есть полно. Но есть одно "НО". Сам материал и его подача весьма деталезированная и разжована до такой степени, что я уже не знаю, как можна всего этого не понять. Так же, хочу отметить, отличную подготовку самого автора, который не просто рассказывает что-то, а понимает что именно он говорит, и зачем это надо. Благодарю!
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за приятные слова! Услада для моих ушей и глаз и лучшая мотивация! Спасибо и желаю приятного просмотра!
@TheRedesc
@TheRedesc 2 года назад
Более-менее серьезный проект api в студию. Все траблы чтобы попали в объектив - сложные связи, фильтрация и сортировка по связным и вычсляемым данным, Корс, и прочая лабуда, разграничение доступа к данным, и т.п.
@CutCodeRu
@CutCodeRu 2 года назад
После нг будем делать большой проект но тему выберем вместе, может и api будет
@user-hs9jm2ph1w
@user-hs9jm2ph1w 2 года назад
ну это же просто главное понять что фронт будет отдельно жить от бэка - а что бы еще понятнее было - поднимите докер и там два сервиса один генерирует фронд другой бэк и все а дальше запрос get post только уже на уровне api
@bankai7654
@bankai7654 Год назад
Прежде чем посмотреть лайк по инерции поставлю)
@CutCodeRu
@CutCodeRu Год назад
Правильный алгоритм хорошего разработчика)
@user-ie4fs5io2x
@user-ie4fs5io2x 2 года назад
Отличное видео, ждем аутентификацию и большой проект.
@user-fs8wx5rz1n
@user-fs8wx5rz1n 2 года назад
Спасибо за видео, получил ответы на многие вопросы.
@sergeyr3417
@sergeyr3417 2 года назад
Отличная и полезная инфа. Спасибо вам!
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр!
@user-ke4uc3mg8g
@user-ke4uc3mg8g 2 года назад
У вас ооочень классный контент. Спасибо за видео) Я в laravel пока новичок, с каждым вашим роликом что-то открываю новенькое для себя. Подача материала хорошая, кратко и по делу))
@CutCodeRu
@CutCodeRu 2 года назад
Рад стараться, спасибо за приятные слова!
@dprhmk
@dprhmk 2 года назад
Спасибо за видео, качество на высоте, приятно смотреть)
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр! Рад стараться!
@user-eg9mh5qe6m
@user-eg9mh5qe6m 2 года назад
Круто! Спасибо!
@user-rz4uf7yp7b
@user-rz4uf7yp7b 2 года назад
Спасибо за видео 👍
@rpy6ocTb
@rpy6ocTb 2 года назад
Спасибо за видео, очень полезно! Ждем еще ;)
@CutCodeRu
@CutCodeRu 2 года назад
спасибо за просмотр и комментарий! если есть какието вопросы - задавайте!
@luksik0
@luksik0 Год назад
Спасибо! Очень полезно,
@MrFlip-fu2py
@MrFlip-fu2py 2 года назад
Круто, парень молодцом! Спасибо, полезно.
@pravilo_TMB
@pravilo_TMB 2 года назад
Благодарю за видео! Было бы здорово осветить различные варианты реализации аутентификации для API
@CutCodeRu
@CutCodeRu 2 года назад
Будет
@alisher.sabirov
@alisher.sabirov Год назад
Спасибо, круто)
@flamberkruds7912
@flamberkruds7912 2 года назад
Спасибо за ролик, конечно сумбурно но дает большой толчок куда копать дальше.
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр!
@alexandershestakov2914
@alexandershestakov2914 2 года назад
Очень доступно! Про JWT уже просил под другим роликом
@CutCodeRu
@CutCodeRu 2 года назад
Есть в задачах, как дойдет очередь запишу
@user-nf1td4hh7y
@user-nf1td4hh7y 4 месяца назад
супер, спасибо за вашу работу!
@CutCodeRu
@CutCodeRu 3 месяца назад
спасибо за комментарий!
@user-qd6hj2fn4w
@user-qd6hj2fn4w 2 года назад
СПАСИБО!
@ilyaslabukarov5959
@ilyaslabukarov5959 Год назад
Огромное спасибо, отличный контент! Лайк, коммент, подписка. )
@CutCodeRu
@CutCodeRu Год назад
Спасибо! Добро пожаловать!
@user-cm2wr3op7w
@user-cm2wr3op7w Год назад
Спасибо за подробное и четкое объяснение! Очень бы хотелось видео по регистрации и аутентификации через passport(особенно!) и sanctum и дальнейшее использование токенов после регистрации user
@CutCodeRu
@CutCodeRu Год назад
Скоро будет про passport с реальным проектом
@user-qw5sd7hf2e
@user-qw5sd7hf2e 2 года назад
Спасибо
@nt2548
@nt2548 2 года назад
Спасибо 👍
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр!
@Thunderstormplus
@Thunderstormplus 2 года назад
Спасибо, то что надо, я как раз для моб RN!=)
@CutCodeRu
@CutCodeRu 2 года назад
👍
@hanze30
@hanze30 2 года назад
отличное видео! Автор молодец
@MrSevenZZZ
@MrSevenZZZ 11 месяцев назад
Надо заметить что рейт лимит по ip защищает от DoS атак(Denial-of-Service), а не от DDoS атак(Distributed Denial-of-Service), на то они и распределённые. В остальном видео отличное, спасибо.
@user-zi6in5by1p
@user-zi6in5by1p 2 года назад
Спасибо за урок, всё супер ! ) Было бы классно сделать пример работы с sanctum, вроде он везде есть да не кто не показывает )
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр! Sanctum тоже в планах
@alexandr9900
@alexandr9900 Год назад
камент для продвижения
@semdevmaster
@semdevmaster 2 года назад
За видео спасибо, всё грамотно и спокойно рассказал - хотелось бы увидеть реализацию с использованием Laravel Octane, чтобы не поднимать весь фреймворк на каждый запрос, а один раз загнать его в память и спокойно работать, для темы API самое оно.
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо за просмотр, думаю и эту тему затронем
@vitaliiche2706
@vitaliiche2706 2 года назад
Thanks!
@CutCodeRu
@CutCodeRu 2 года назад
🤝
@user-eq5rm5nh4h
@user-eq5rm5nh4h 2 года назад
Жду видео про аунтефикацию
@MrSfinks13
@MrSfinks13 Год назад
Спасибо. Как раз, то, что нужно мне в данный момент. P.S.: Хотелось бы Api Test видео. Не нашёл на Вашем канале (может плохо искал...))) )
@CutCodeRu
@CutCodeRu Год назад
На канале есть гайд по тестам и http тесты тоже рассматриваются
@MrSfinks13
@MrSfinks13 Год назад
@@CutCodeRu Благодарю. посмотрю.
@deniss2799
@deniss2799 Год назад
Добрый день. Очень нравятся Ваши видео. Расскажите, пожалуйста, о грамотном разбивании приложения на модули, можно также видео о Вашем взгляде на Porto, его плюсы и минусы. Спасибо 😊
@CutCodeRu
@CutCodeRu Год назад
Подумаю об этом но с porto не знаком
@Have476
@Have476 3 месяца назад
Сделайте проект про создание тг бота на ларавель многофункционального, думаю интересно будет с использованием ngrok, telegraph, webhook,защита данных.. сам ищу дельное и в одном месте, желательно видео чтобы было) спасибо за видео
@user-yf8if2qy5t
@user-yf8if2qy5t 2 года назад
Сними пжл ролик про кеширование Redis, файловое кеширование, когда что лучше применять, и пару примеров. Спасибо за видео!
@CutCodeRu
@CutCodeRu 2 года назад
Есть в планах но не знаю когда дойдут руки
@GarettNils
@GarettNils 2 года назад
Обязательно про аутентификацию нужен ролик.
@CutCodeRu
@CutCodeRu 2 года назад
Ок, сделаем
@user-nk8wq4sx1x
@user-nk8wq4sx1x Год назад
Любопытно, в целом по верхам понятно. Не раскрыт момент, как снарядить ответ заголовком 'Accept': "application/json" ?
@dontsmoking2128
@dontsmoking2128 2 года назад
смысл в VersionCollection? VersionResource::collection() чем не подходит?
@TakemuraGoro
@TakemuraGoro Год назад
Спасибо, полезно. Но хотелось бы подробнее про логику ресурсов. Почему он так работает. Схему, кто что вызывает. Почему именно так это происходит, как "думает" ларавель когда получает на входе такие данные. Что делать если у меня коллекция, в коллекции, как надо рассуждать что бы создать правильную цепочку.
@bankai7654
@bankai7654 Год назад
Чем отличается JsonResourse/Collection от response()->json() ? Выглядит так, как будто JsonResourse можно больше настроить под себя
@user-wd3mi8cp2s
@user-wd3mi8cp2s 7 месяцев назад
Скажите пожалуйста, а каким образом обсёрвер понимает что создана новая запись? Опять магия ларавел? Из метода created удаляется "d" ?
@cristianoprea9247
@cristianoprea9247 Год назад
Мне кажется удобнее создавать подпапки с версиями в папке routes
@CutCodeRu
@CutCodeRu Год назад
Почему бы и нет
@nikitalyalin7354
@nikitalyalin7354 2 года назад
Спасибо! Очень годная инфа. А как быть со сменой версий API ? не стоит ли ресурсы тоже подразделять на версии?
@CutCodeRu
@CutCodeRu 2 года назад
Будет не лишним
@artem_ib
@artem_ib 2 года назад
Прикольно! Хочу реализовать свой API на Laravel, но пока не могу совсем разобраться на базовом уровне в фреймворке. Скажите, навскидку, много времени потратили на изучение, как всё это работает ?
@CutCodeRu
@CutCodeRu 2 года назад
Недельку
@artem_ib
@artem_ib 2 года назад
@@CutCodeRu Видимо у вас был увереный старт))
@snikitin32
@snikitin32 3 месяца назад
А зачем observer и такая сложная реализация, если в самой модели в методе boot можно задавать действия для событий модели?
@sani4051992
@sani4051992 Год назад
Добрый день! Скажите, а зачем коллекции нужно ссылаться на ресурс если они выполняют по-сути ту же функцию, но только первый для одного объекта, а другой для множества? Если модели нужно знать из какой таблицы она дергает данные, то что дергает коллекция из ресурса? 14:30 - момент Если что то написал не верно - поправьте, пожалуйста.
@CutCodeRu
@CutCodeRu 2 года назад
Всех приглашаю в чат CutCode - t.me/laravel_chat . Здесь общаемся и делимся опытом)
@user-vf7pc4tn9z
@user-vf7pc4tn9z 11 месяцев назад
расскажи подробнее про rate limited laravel
@alexandr9900
@alexandr9900 Год назад
подскажите пожалуйста, есть ли код по этому уроку на гитхабе?
@CutCodeRu
@CutCodeRu Год назад
Не выкладывали в те времена код к сожалению
@BillieBonse
@BillieBonse Месяц назад
как в коллекции поля модифицировать? в ресурсе понятно все, а про коллекцию нет инфы в видосе
@sergeykonov4562
@sergeykonov4562 2 года назад
get был, а про post запросы ничего. Было бы интересно увидеть небольшое приложение без фронта. Только с бэком, взаимодействие через АПИ
@CutCodeRu
@CutCodeRu 2 года назад
Сделаем чуть позже
@itdev4680
@itdev4680 2 года назад
ресурс коллекция в данном случае лишняя, можно сдеать коллекцию прямо из ресурса, по обсерверу по-хорошему нужно так-же и за updated/deleted следить
@CutCodeRu
@CutCodeRu 2 года назад
продемонстрировал наличие
@fitter2boss72
@fitter2boss72 5 месяцев назад
Где хоть кака-то валидация и обработка ошибок?
@ipdev
@ipdev 2 года назад
g = джи. j = джей. получаем JSON = джейсон, никак не джисон
@CutCodeRu
@CutCodeRu 2 года назад
Спасибо, но привычку так произносить побороть будет тяжело(
Далее
What is OpenTelemetry?
12:55
Просмотров 1,6 тыс.
Laravel Events / Observers
15:23
Просмотров 15 тыс.