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

  Рет қаралды 29,085

Просто о Laravel. CutCode

Просто о Laravel. CutCode

Күн бұрын

В сегодняшнем мы изучим 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. Все что н...
🔔 подпишитесь на KZbin-канал: / @cutcoderu
📼 Курс по Laravel с нуля:
• Курс по Laravel 8 обуч...
Laravel API. Все что необходимо! Json Resource, Resource Collection, Cache, Rate Limit
---------------------------------------------------------------------------------
🔗 наш сайт: cutcode.dev/
📷 наш instagram: / cutcoderu
📱 Наш telegram-канал: t.me/laravel_cutcode

Пікірлер: 103
@CutCodeRu
@CutCodeRu 7 ай бұрын
🎁 Для вас есть подарок, забирайте - 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 сегменте пилит качественный контент
@TheRedesc
@TheRedesc 2 жыл бұрын
Более-менее серьезный проект api в студию. Все траблы чтобы попали в объектив - сложные связи, фильтрация и сортировка по связным и вычсляемым данным, Корс, и прочая лабуда, разграничение доступа к данным, и т.п.
@CutCodeRu
@CutCodeRu 2 жыл бұрын
После нг будем делать большой проект но тему выберем вместе, может и api будет
@user-hs9jm2ph1w
@user-hs9jm2ph1w 2 жыл бұрын
ну это же просто главное понять что фронт будет отдельно жить от бэка - а что бы еще понятнее было - поднимите докер и там два сервиса один генерирует фронд другой бэк и все а дальше запрос get post только уже на уровне api
@user-nf1td4hh7y
@user-nf1td4hh7y Ай бұрын
супер, спасибо за вашу работу!
@CutCodeRu
@CutCodeRu Ай бұрын
спасибо за комментарий!
@aldwynconjurer9449
@aldwynconjurer9449 2 жыл бұрын
Смотрю только второе видео этого автора. Но то что я увидел - уже заслуживает лайка, подписки и комментария. Материал базовый(с того что я смотрел). Подобного в инете есть полно. Но есть одно "НО". Сам материал и его подача весьма деталезированная и разжована до такой степени, что я уже не знаю, как можна всего этого не понять. Так же, хочу отметить, отличную подготовку самого автора, который не просто рассказывает что-то, а понимает что именно он говорит, и зачем это надо. Благодарю!
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за приятные слова! Услада для моих ушей и глаз и лучшая мотивация! Спасибо и желаю приятного просмотра!
@user-fs8wx5rz1n
@user-fs8wx5rz1n 2 жыл бұрын
Спасибо за видео, получил ответы на многие вопросы.
@user-rz4uf7yp7b
@user-rz4uf7yp7b 2 жыл бұрын
Спасибо за видео 👍
@user-eg9mh5qe6m
@user-eg9mh5qe6m 2 жыл бұрын
Круто! Спасибо!
@luksik0
@luksik0 Жыл бұрын
Спасибо! Очень полезно,
@user-ie4fs5io2x
@user-ie4fs5io2x 2 жыл бұрын
Отличное видео, ждем аутентификацию и большой проект.
@MrFlip-fu2py
@MrFlip-fu2py Жыл бұрын
Круто, парень молодцом! Спасибо, полезно.
@user-ke4uc3mg8g
@user-ke4uc3mg8g 2 жыл бұрын
У вас ооочень классный контент. Спасибо за видео) Я в laravel пока новичок, с каждым вашим роликом что-то открываю новенькое для себя. Подача материала хорошая, кратко и по делу))
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Рад стараться, спасибо за приятные слова!
@dprhmk
@dprhmk 2 жыл бұрын
Спасибо за видео, качество на высоте, приятно смотреть)
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр! Рад стараться!
@alisher.sabirov
@alisher.sabirov Жыл бұрын
Спасибо, круто)
@sergeyr3417
@sergeyr3417 2 жыл бұрын
Отличная и полезная инфа. Спасибо вам!
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр!
@rpy6ocTb
@rpy6ocTb 2 жыл бұрын
Спасибо за видео, очень полезно! Ждем еще ;)
@CutCodeRu
@CutCodeRu 2 жыл бұрын
спасибо за просмотр и комментарий! если есть какието вопросы - задавайте!
@user-qd6hj2fn4w
@user-qd6hj2fn4w 2 жыл бұрын
СПАСИБО!
@user-qw5sd7hf2e
@user-qw5sd7hf2e 2 жыл бұрын
Спасибо
@MrSevenZZZ
@MrSevenZZZ 9 ай бұрын
Надо заметить что рейт лимит по ip защищает от DoS атак(Denial-of-Service), а не от DDoS атак(Distributed Denial-of-Service), на то они и распределённые. В остальном видео отличное, спасибо.
@hanze30
@hanze30 2 жыл бұрын
отличное видео! Автор молодец
@ilyaslabukarov5959
@ilyaslabukarov5959 Жыл бұрын
Огромное спасибо, отличный контент! Лайк, коммент, подписка. )
@CutCodeRu
@CutCodeRu Жыл бұрын
Спасибо! Добро пожаловать!
@pravilo_TMB
@pravilo_TMB 2 жыл бұрын
Благодарю за видео! Было бы здорово осветить различные варианты реализации аутентификации для API
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Будет
@flamberkruds7912
@flamberkruds7912 2 жыл бұрын
Спасибо за ролик, конечно сумбурно но дает большой толчок куда копать дальше.
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр!
@alexandershestakov2914
@alexandershestakov2914 2 жыл бұрын
Очень доступно! Про JWT уже просил под другим роликом
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Есть в задачах, как дойдет очередь запишу
@nt2548
@nt2548 2 жыл бұрын
Спасибо 👍
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр!
@user-cm2wr3op7w
@user-cm2wr3op7w Жыл бұрын
Спасибо за подробное и четкое объяснение! Очень бы хотелось видео по регистрации и аутентификации через passport(особенно!) и sanctum и дальнейшее использование токенов после регистрации user
@CutCodeRu
@CutCodeRu Жыл бұрын
Скоро будет про passport с реальным проектом
@HaveFun_and_Smile
@HaveFun_and_Smile Ай бұрын
Сделайте проект про создание тг бота на ларавель многофункционального, думаю интересно будет с использованием ngrok, telegraph, webhook,защита данных.. сам ищу дельное и в одном месте, желательно видео чтобы было) спасибо за видео
@Thunderstormplus
@Thunderstormplus 2 жыл бұрын
Спасибо, то что надо, я как раз для моб RN!=)
@CutCodeRu
@CutCodeRu 2 жыл бұрын
👍
@vitaliiche2706
@vitaliiche2706 Жыл бұрын
Thanks!
@CutCodeRu
@CutCodeRu Жыл бұрын
🤝
@user-zi6in5by1p
@user-zi6in5by1p 2 жыл бұрын
Спасибо за урок, всё супер ! ) Было бы классно сделать пример работы с sanctum, вроде он везде есть да не кто не показывает )
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр! Sanctum тоже в планах
@bankai7654
@bankai7654 Жыл бұрын
Прежде чем посмотреть лайк по инерции поставлю)
@CutCodeRu
@CutCodeRu Жыл бұрын
Правильный алгоритм хорошего разработчика)
@semdevmaster
@semdevmaster 2 жыл бұрын
За видео спасибо, всё грамотно и спокойно рассказал - хотелось бы увидеть реализацию с использованием Laravel Octane, чтобы не поднимать весь фреймворк на каждый запрос, а один раз загнать его в память и спокойно работать, для темы API самое оно.
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо за просмотр, думаю и эту тему затронем
@alexandr9900
@alexandr9900 Жыл бұрын
камент для продвижения
@MrSfinks13
@MrSfinks13 Жыл бұрын
Спасибо. Как раз, то, что нужно мне в данный момент. P.S.: Хотелось бы Api Test видео. Не нашёл на Вашем канале (может плохо искал...))) )
@CutCodeRu
@CutCodeRu Жыл бұрын
На канале есть гайд по тестам и http тесты тоже рассматриваются
@MrSfinks13
@MrSfinks13 Жыл бұрын
@@CutCodeRu Благодарю. посмотрю.
@deniss2799
@deniss2799 Жыл бұрын
Добрый день. Очень нравятся Ваши видео. Расскажите, пожалуйста, о грамотном разбивании приложения на модули, можно также видео о Вашем взгляде на Porto, его плюсы и минусы. Спасибо 😊
@CutCodeRu
@CutCodeRu Жыл бұрын
Подумаю об этом но с porto не знаком
@user-eq5rm5nh4h
@user-eq5rm5nh4h 2 жыл бұрын
Жду видео про аунтефикацию
@user-yf8if2qy5t
@user-yf8if2qy5t 2 жыл бұрын
Сними пжл ролик про кеширование Redis, файловое кеширование, когда что лучше применять, и пару примеров. Спасибо за видео!
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Есть в планах но не знаю когда дойдут руки
@GarettNils
@GarettNils 2 жыл бұрын
Обязательно про аутентификацию нужен ролик.
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Ок, сделаем
@TakemuraGoro
@TakemuraGoro 10 ай бұрын
Спасибо, полезно. Но хотелось бы подробнее про логику ресурсов. Почему он так работает. Схему, кто что вызывает. Почему именно так это происходит, как "думает" ларавель когда получает на входе такие данные. Что делать если у меня коллекция, в коллекции, как надо рассуждать что бы создать правильную цепочку.
@user-nk8wq4sx1x
@user-nk8wq4sx1x 11 ай бұрын
Любопытно, в целом по верхам понятно. Не раскрыт момент, как снарядить ответ заголовком 'Accept': "application/json" ?
@dontsmoking2128
@dontsmoking2128 2 жыл бұрын
смысл в VersionCollection? VersionResource::collection() чем не подходит?
@bankai7654
@bankai7654 Жыл бұрын
Чем отличается JsonResourse/Collection от response()->json() ? Выглядит так, как будто JsonResourse можно больше настроить под себя
@nikitalyalin7354
@nikitalyalin7354 Жыл бұрын
Спасибо! Очень годная инфа. А как быть со сменой версий API ? не стоит ли ресурсы тоже подразделять на версии?
@CutCodeRu
@CutCodeRu Жыл бұрын
Будет не лишним
@user-wd3mi8cp2s
@user-wd3mi8cp2s 5 ай бұрын
Скажите пожалуйста, а каким образом обсёрвер понимает что создана новая запись? Опять магия ларавел? Из метода created удаляется "d" ?
@sani4051992
@sani4051992 Жыл бұрын
Добрый день! Скажите, а зачем коллекции нужно ссылаться на ресурс если они выполняют по-сути ту же функцию, но только первый для одного объекта, а другой для множества? Если модели нужно знать из какой таблицы она дергает данные, то что дергает коллекция из ресурса? 14:30 - момент Если что то написал не верно - поправьте, пожалуйста.
@snikitin32
@snikitin32 27 күн бұрын
А зачем observer и такая сложная реализация, если в самой модели в методе boot можно задавать действия для событий модели?
@artem_ib
@artem_ib 2 жыл бұрын
Прикольно! Хочу реализовать свой API на Laravel, но пока не могу совсем разобраться на базовом уровне в фреймворке. Скажите, навскидку, много времени потратили на изучение, как всё это работает ?
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Недельку
@artem_ib
@artem_ib 2 жыл бұрын
@@CutCodeRu Видимо у вас был увереный старт))
@alexandr9900
@alexandr9900 Жыл бұрын
подскажите пожалуйста, есть ли код по этому уроку на гитхабе?
@CutCodeRu
@CutCodeRu Жыл бұрын
Не выкладывали в те времена код к сожалению
@cristianoprea9247
@cristianoprea9247 Жыл бұрын
Мне кажется удобнее создавать подпапки с версиями в папке routes
@CutCodeRu
@CutCodeRu Жыл бұрын
Почему бы и нет
@sergeykonov4562
@sergeykonov4562 2 жыл бұрын
get был, а про post запросы ничего. Было бы интересно увидеть небольшое приложение без фронта. Только с бэком, взаимодействие через АПИ
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Сделаем чуть позже
@CutCodeRu
@CutCodeRu Жыл бұрын
Всех приглашаю в чат CutCode - t.me/laravel_chat . Здесь общаемся и делимся опытом)
@user-vf7pc4tn9z
@user-vf7pc4tn9z 8 ай бұрын
расскажи подробнее про rate limited laravel
@itdev4680
@itdev4680 2 жыл бұрын
ресурс коллекция в данном случае лишняя, можно сдеать коллекцию прямо из ресурса, по обсерверу по-хорошему нужно так-же и за updated/deleted следить
@CutCodeRu
@CutCodeRu 2 жыл бұрын
продемонстрировал наличие
@fitter2boss72
@fitter2boss72 2 ай бұрын
Где хоть кака-то валидация и обработка ошибок?
@ipdev
@ipdev 2 жыл бұрын
g = джи. j = джей. получаем JSON = джейсон, никак не джисон
@CutCodeRu
@CutCodeRu 2 жыл бұрын
Спасибо, но привычку так произносить побороть будет тяжело(
[실시간] 전철에서 찍힌 기생생물 감염 장면 | 기생수: 더 그레이
00:15
Netflix Korea 넷플릭스 코리아
Рет қаралды 38 МЛН
NO NO NO YES! (Fight SANTA CLAUS) #shorts
00:41
PANDA BOI
Рет қаралды 56 МЛН
КАРМАНЧИК 2 СЕЗОН 4 СЕРИЯ
24:05
Inter Production
Рет қаралды 524 М.
КАК ГЛОТАЮТ ШПАГУ?😳
00:33
Masomka
Рет қаралды 2,1 МЛН
Laravel Controllers: Concept of Service and Actions
6:15
Просто о Laravel. CutCode
Рет қаралды 9 М.
Install and use websocket in laravel 10 with php 8.0 and above
13:03
Разбор Error Handling в Laravel. Под капотом Laravel
25:50
Просто о Laravel. CutCode
Рет қаралды 1,7 М.
Pipelines в Laravel. Для тех кто не знал.
10:06
Просто о Laravel. CutCode
Рет қаралды 10 М.
Знакомство с REST API и форматом JSON
27:48
Михаил Непомнящий
Рет қаралды 62 М.
[실시간] 전철에서 찍힌 기생생물 감염 장면 | 기생수: 더 그레이
00:15
Netflix Korea 넷플릭스 코리아
Рет қаралды 38 МЛН