Тёмный
No video :(

Laravel: Create Public API with Cache and Rate Limits 

Laravel Daily
Подписаться 143 тыс.
Просмотров 46 тыс.
50% 1

What if you want to create an API endpoint that would be public for the whole world? In this video, I will live-code exactly that, including some performance and security measures.
00:00 Short intro
00:44 Step 1/4. Simple API Controller/Route
02:22 Step 2/4. Transform with API Resources
05:45 Step 3/4. Caching and Observers
10:27 Step 4/4. Throttle and Rate Limits
Related links:
- Eloquent API Resources: laravel.com/do...
- Cache in Laravel: laravel.com/do...
- Rate Limiting in Laravel 8: laravel.com/do...
- - - - -
Support the channel by checking out our products:
- Enroll in my Laravel courses: laraveldaily.t...
- Try our Laravel QuickAdminPanel: bit.ly/quickad...
- Purchase my Livewire Kit: livewirekit.com
- View Laravel Code Examples: laravelexample...
- Subscribe to my weekly newsletter: bit.ly/laravel-...

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

 

14 авг 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 135   
@user-pn3hk2tn8d
@user-pn3hk2tn8d 3 года назад
very simple, short, fast and to the point. I really like this video format. When you do the same after the video and it really works! Thank you, Povilas!
@bhanukrsingh
@bhanukrsingh 3 года назад
I am a wordpress developer, and your videos keeps inspiring me to learn laravel.
@kickass1179
@kickass1179 3 года назад
it is a no thinker mate, go learn Laravel, start with Laracasts!
@bhanukrsingh
@bhanukrsingh 3 года назад
@@kickass1179 Yeah, I had Laracasts subscription but it was very difficult with my full time job. Weekends are all I get, but I guess I will have to come up with some strategy to actually find time. These videos keep my interest high.
@rahulgohilvlogs1820
@rahulgohilvlogs1820 3 года назад
@@bhanukrsingh Find Coders Tape 5.8 course on RU-vid which is free to start.
@JouvaMoufette
@JouvaMoufette 3 года назад
Very useful stuff! Love the use of the Observer pattern to clear the cache. Makes that very simple to handle
@webcodingoprogrammingtips2090
@webcodingoprogrammingtips2090 3 года назад
Really interesting approach, thanks for sharing it with us
@alimransujon6388
@alimransujon6388 3 года назад
Every time I see your video, I learn something new. Watching your videos since 2020. Don’t stop it. Keep up. You are a legend.
@birenjung
@birenjung Год назад
I have been studying your Laraval Roadmap for one month. I am really grateful for this.
@mibrahim4245
@mibrahim4245 2 года назад
It's not useful, it's extremely useful!! You talked about a loooot of things!! What an intense and clear tutorial.. God bless you ..
@danwah
@danwah 3 года назад
Great video! For anyone that doesn't know you can make laravel create all the standard API methods, such as index, store, show, create, update and delete when you create a controller by passing in --api flag. E.g. PHP artisan make: controller ExampleController --api --model=ExampleModel
@hot4mix
@hot4mix 2 года назад
Fantastic as usual, @8:34 tho. I think you were going to mention Carbon, but you went on to Observers. the Cache::remember 2nd argument can be an instance of carbon, Which means you can use *Carbon::today()->endOfDay()* and it will be cached for that exact timeframe. Or you can also use Laravel's today helper: *today()->endOfDay()*
@ErickJeronimo
@ErickJeronimo 2 года назад
Thanks for pointind that
@valtrgr3755
@valtrgr3755 3 года назад
the cache and observer thing is new for me. thank you
@user-zg1pc6md6y
@user-zg1pc6md6y 3 года назад
Спасибо большое) Вроде бы уже сам знаю эту тему, но нюансы очень полезны. Ради нюансов и смотрю каждый день
@rikiamaru
@rikiamaru Год назад
this is exactly what im looking for, thank you so much
@redayoub
@redayoub 3 года назад
Thanks for the video, I suggest adding pagination to limit the returned data
@vivdroid
@vivdroid 3 года назад
You are doing great job sir that’s why I purchased your courses to support you.
@anthoniG
@anthoniG 3 года назад
Yep same. I am learning so muh useful info. I bought the full subscription.
@zakariajawas
@zakariajawas 2 года назад
Thank you for your time and effort, your topics are always useful
@mhmdomer
@mhmdomer 3 года назад
Very informative! thanks, Povilas. I think it is a good practice to select only the fields you want from the database, especially if you are getting a big collection " in this case CovidCase::all()", it is better to use "CovidCase::select(['cases', 'report_date'])->get()" to use less memory by loading fewer data to the memory.
@LaravelDaily
@LaravelDaily 3 года назад
Good catch, thought about it myself when re-watching the video after publishing.
@lupanvi
@lupanvi 3 года назад
Using that approach, how could I format the date?
@mhmdomer
@mhmdomer 3 года назад
@@lupanvi you can use the same technique used in the video ( using resource class )
@lupanvi
@lupanvi 3 года назад
@@mhmdomer ok, but I was thinking without resources, to avoid it
@mhmdomer
@mhmdomer 3 года назад
@@lupanvi you can call $case->report_date->format("Y-m-d") on the blade file where you want to render it
@phil86_
@phil86_ 3 года назад
Great tutorial, as always. Showing the use of Postman is also important.
@youngengineer8033
@youngengineer8033 3 года назад
Sir you are the best one day i will remind you that. Do you remember when u had 66k subscription I told u you are gonna have 1 M subscriber than you will say i dont remember what u said.
@raykudjie2365
@raykudjie2365 3 года назад
I learned something new each time with your videos!
@ziakhan-vv9ts
@ziakhan-vv9ts 2 года назад
Very useful in a short video, api, observer,postman, api protection 👍
@abdulbasitsalah2918
@abdulbasitsalah2918 3 года назад
the cache was totally new to me, it was very usefull video
@TemoTemo1995
@TemoTemo1995 2 года назад
Omg so good explained i finally understood many things in a single video. Keep it short 🤘
@sumailsasumi1294
@sumailsasumi1294 2 года назад
Its make laravel so powerfull i love it
@asimal-tayeb5355
@asimal-tayeb5355 2 года назад
simple, helpful thanx.
@kylesvoid
@kylesvoid 4 месяца назад
super helpful, thank you!
@ErickJeronimo
@ErickJeronimo 2 года назад
Great video, thanks!
@holiqibrahim
@holiqibrahim 3 года назад
I really like your tutorial, very short and easy to understand
@juliopeluciofox
@juliopeluciofox 3 года назад
Very helpful your videos Povilas, really like how simple thing are when you explain.
@GergelyCsermely
@GergelyCsermely 3 года назад
Thanks very interesting again.
@binodthakur6113
@binodthakur6113 3 года назад
Excellent topic and Insight - always each and every video on Laravel is awesome. Thanks a lot has learned a lot from you. God bless you. Love from India.
@emuqatash
@emuqatash 8 месяцев назад
you are perfect! thank you
@bozok1903
@bozok1903 3 года назад
I learn lots of things from you. Thanks a lot.
@jimishukurow2286
@jimishukurow2286 2 года назад
Royal like from me, to last par of video
@agentstona
@agentstona 2 года назад
fantastic great tutorial
@twentxx
@twentxx 2 года назад
Thank you! Laravel 😍
@NasirKhan-jy3gp
@NasirKhan-jy3gp Год назад
thanks for the code that what i was looking for just issue was you were hiding use Illuminate\Support\Facades\Cache;
@vinitkadkol7145
@vinitkadkol7145 Год назад
Great stuff
@LaravelLover
@LaravelLover 3 года назад
Great tips Povilas, Thank you so much for your efforts
@syedkhizer857
@syedkhizer857 2 года назад
Really good video as always. Thanks A LOT!
@amgadalwattar2863
@amgadalwattar2863 Год назад
very useful thx
@sajadabbasi2268
@sajadabbasi2268 3 года назад
thanks usfull tutorials
@dasuneranda
@dasuneranda 3 года назад
Thank you sir
@kickass1179
@kickass1179 3 года назад
I wish I knew how to implement cashing like this 2 years ago...thanks!
@rism8345
@rism8345 2 года назад
Exactly what I needed. Thanks for the withoutWrapping() tip and congrats on 100k! Well deserved!
@shaadishtiaque2084
@shaadishtiaque2084 3 года назад
Thanks for the tutorial.
@izniburak
@izniburak 3 года назад
Great tutorial! Thanks.
@ahmedsaid7190
@ahmedsaid7190 3 года назад
Thank you very much, you are really a great man
@voychoi9923
@voychoi9923 2 года назад
Thanks
@hassanfazeel2354
@hassanfazeel2354 3 года назад
Excellent tip
@user-uf3mu4vo9t
@user-uf3mu4vo9t 3 года назад
A very useful video thank you
@hassamulhaq7762
@hassamulhaq7762 2 года назад
Love this tutorial 🤩
@mikeendsley8453
@mikeendsley8453 3 года назад
Wow, this is gold!
@alembilic5614
@alembilic5614 3 года назад
Great video keep up with good work
@ismoilkirgizov1640
@ismoilkirgizov1640 3 года назад
excellent
@L-A-O-S
@L-A-O-S 3 года назад
like a Swiss watch.
@larslommen9098
@larslommen9098 3 года назад
Very useful, thanks
@belaouraabdelwahab
@belaouraabdelwahab 3 года назад
Thanks a lot great video very useful
@codelaravel
@codelaravel 3 года назад
Well efforts sir. Please make videos series on unit and feature testing in laravel 8 with different permission by using policy logic
@LaravelDaily
@LaravelDaily 3 года назад
I've created some content on unit/feature testing, search the channel: ru-vid.com/show-UCTuplgOBi6tJIlesIboymGAsearch?query=testing Also, a separate course: laraveldaily.teachable.com/p/laravel-phpunit-testing-for-beginners But that content wasn't very popular, so for now not planning to dive deeper into it. You can also check out these examples: twitter.com/PovilasKorop/status/1414579559584968714
@vladyslavbondarenko4983
@vladyslavbondarenko4983 3 года назад
Cool explain!
@L-A-O-S
@L-A-O-S 3 года назад
just in time)
@thelostrider1
@thelostrider1 3 года назад
Nicee!
@webcodingoprogrammingtips2090
@webcodingoprogrammingtips2090 3 года назад
Great stats - 945 views, 106 likes, 0 dislikes!
@AhsanKhan89
@AhsanKhan89 7 месяцев назад
I have defined this rate limit to 1000 in my new Laravel 10 application but I still see Too many requests error after a few requests to the database. I searched a lot but couldn't figure out the issue yet. Are there any new changes in the Laravel 10 API using Sanctum?
@amitdev1485
@amitdev1485 3 года назад
great videos
@iochizna1568
@iochizna1568 3 года назад
Thanks for the tutorial can you do a tutorial " if a user want to access there dashboard they would provide 4 digit pincode before they can access there dashboard"
@LaravelDaily
@LaravelDaily 3 года назад
It's a very edge case. In very rare case you change email/password authentication to something like 4-digit pincode. Not planning to do a tutorial for such rare case.
@mamangboi9303
@mamangboi9303 3 года назад
This usefull
@gssj-o8p
@gssj-o8p Год назад
Thanks a lot for this lesson, really helped me a lot! How would you deal with routes that change result based on parameter passed in thr query string? How to cache that?
@dsdigitalcompany4004
@dsdigitalcompany4004 Год назад
Waw 😍🤤
@SaywanGanji
@SaywanGanji 2 года назад
that good
@husseinh8232
@husseinh8232 2 года назад
thank you a lot for your time and effort💚❤️ I was wondering How could you show the name of attributes in functions like cache:: forget(keys:"cases"); how to show that keys as an attr back to the value
@NasirKhan-jy3gp
@NasirKhan-jy3gp Год назад
hey got i quick question i have a API which return the user data base on user id how to cache that api now i am having a small problem after following you video i am get same repose if i change id how to solve this
@8bitenial313
@8bitenial313 2 года назад
I'm getting queries even after storing in cache. Steps unitl 7:40 followed. Why this could be? I'm using file store cache.
@free2idol1
@free2idol1 2 года назад
double check if you have already cached the query.
@8bitenial313
@8bitenial313 2 года назад
@@free2idol1 I wasn't using the cached data as return properly. Thank you.
@geneartista9714
@geneartista9714 3 года назад
Does using api resource slows down your apps performance same with including observers ? Isn't it processing a lot before the data is sent to the client 😬
@LaravelDaily
@LaravelDaily 3 года назад
I haven't noticed the performance problems with those.
@insidecampustv
@insidecampustv 3 года назад
Do you have a tutorial on how admin can suspend a user for some days, before the user will be able to login back to the website
@LaravelDaily
@LaravelDaily 3 года назад
Two similar articles: laraveldaily.com/how-to-ban-suspend-users-in-laravel-project/ blog.quickadminpanel.com/3-ways-to-delete-user-in-laravel-block-hide-or-hard-delete/
@HaroldKimTV
@HaroldKimTV 3 года назад
Question. How di you cache the query in route model bindings? Same with policy Ex. function (Covid $covid, Request $req) { … }
@LaravelDaily
@LaravelDaily 3 года назад
I've googled and found this: stackoverflow.com/a/66446816
@free2idol1
@free2idol1 2 года назад
It is not worth the effort to cache the route model binding, as one of the answer from the SO pointed out by Larave Daily, it said "I cant tell how much performance improvement you get for caching one of the simplest queries a db can do (retrieve a record by primary key), but you might also try to cache the complete html contents".
@akshaygadekar9926
@akshaygadekar9926 2 года назад
Won't it be better to put observer in model itself, as putting it in service provider boots it for every unnecessary request
@TheLuizSK
@TheLuizSK 2 года назад
how can i customize the rate limit message ?
@yezperdk
@yezperdk 3 года назад
Related to this topic: Any chance you could make a video about versioning an API?
@LaravelDaily
@LaravelDaily 3 года назад
I have it as one of my lessons in the course about API: laraveldaily.teachable.com/courses/how-to-create-laravel-api/lectures/17568998
@JY-xv7ic
@JY-xv7ic 2 года назад
what happen with throttle middleware?
@ashishchaturvedi007
@ashishchaturvedi007 2 года назад
Povilas,I want to know is there a way to use MIddleware to know if the same IP is hitting the system too many times that we stop this and show Google Captcha over the page? I want to use RateLimiter but don't know-how
@LaravelDaily
@LaravelDaily 2 года назад
Let me google it for you. Googled "Laravel rate limit by ip", found this: hackthestuff.com/article/how-to-limit-number-of-requests-per-ip-address-in-laravel-8
@digitaluniverse9826
@digitaluniverse9826 3 года назад
Hello Mr povilas. This Is a great tutorial. Just a question though.. What if there is one to many Or many to many relationship. How we parse that in collection. Like hiding specific fields from the relationships and formatting dates etc?
@LaravelDaily
@LaravelDaily 3 года назад
I guess this is your answer: laravel.com/docs/8.x/eloquent-resources#conditional-relationships
@TariqSajid
@TariqSajid 3 года назад
can you please make tutorial on how to secure communicate between two micro services ?
@LaravelDaily
@LaravelDaily 3 года назад
I don't actively work with micro services, so can't advise on that.
@user-np1oq2vz7n
@user-np1oq2vz7n Год назад
could you advise, is it reasonable to create cache on midel as the database caches all requests itself?
@LaravelDaily
@LaravelDaily Год назад
Reasonable because then you are in full control of that cache, on the application level, and may manage that cache in the code. You're not that much in control over when/how database caches things.
@PathOfDamn
@PathOfDamn 3 года назад
So the cache can be used just like this? Do I need to set up drivers or anything such as memcached or redis? Because according to the docs it seem like I need to set something up but I don't see any set up in the video
@LaravelDaily
@LaravelDaily 3 года назад
I use default Cache driver, which is "file"
@PathOfDamn
@PathOfDamn 3 года назад
@@LaravelDaily Ok, thank you!
@xSERENKIx
@xSERENKIx 3 года назад
@Laravel Daily Thanks for your videos, really great work! But i have legacy project by laravel 5.6, laravel-telescope and ray do not work on this version. Can you advise me what to use?
@LaravelDaily
@LaravelDaily 3 года назад
Upgrade to Laravel 8. Otherwise you will have more and more things that are not working for you. Including security issues.
@xSERENKIx
@xSERENKIx 3 года назад
@@LaravelDaily Yes, I absolutely agree with you, this is my long term issue. But now I really need to work with this version. Thanks for your reply.
@abdelwahabs.301
@abdelwahabs.301 3 года назад
Hi and thanks for this video. My question is if I want to make an API for a mobile app (using sanctum), and in the same time I will create a web app for this project, which is the best way to do that ? In order to stay in DRY principal. And let's assume that I am not comfortable with front-end framework like Vue or React and I want to use web and api routes files, how can I extract the common code used in both controllers (in web and api). I wish it's clear , thank you a lot.
@LaravelDaily
@LaravelDaily 3 года назад
It's not a question that I could answer in a short RU-vid comment, will need to make a full project with a video about it. Maybe in the future.
@abdelwahabs.301
@abdelwahabs.301 3 года назад
@@LaravelDaily yes it will be good, I appreciate thanks
@lordgodgiven
@lordgodgiven 3 года назад
Hello, Thanks your video, i've a question it's possible to add a parameter such a date interval in a route resource, i'm using laravel 8. Thanks
@LaravelDaily
@LaravelDaily 3 года назад
No, Route Resource is a set of routes, not a single route, so you can't add a parameter to all of the routes.
@lordgodgiven
@lordgodgiven 3 года назад
@@LaravelDaily thanks for your replay, it's possible to store parameters in session and use it in eloquent?
@LaravelDaily
@LaravelDaily 3 года назад
Yes, similar like here: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-PanSES2v2gk.html
@lordgodgiven
@lordgodgiven 3 года назад
@@LaravelDaily thanks
@maximilianominetto524
@maximilianominetto524 3 года назад
How to customize the message of rate limit?
@LaravelDaily
@LaravelDaily 3 года назад
From the official docs: RateLimiter::for('global', function (Request $request) { return Limit::perMinute(1000)->response(function () { return response('Custom response...', 429); }); }); laravel.com/docs/8.x/routing#defining-rate-limiters
@maximilianominetto524
@maximilianominetto524 3 года назад
@@LaravelDaily Thanks, it wasn't difficult.
@menma977
@menma977 3 года назад
You have any tutorial to make api public key ? Im curious..
@LaravelDaily
@LaravelDaily 3 года назад
Sorry I don't understand what exactly do you mean by "api public key". Key for what? For what type of usage?
@menma977
@menma977 3 года назад
@@LaravelDaily such as websites that provide api tokens to be accessed by other users to build their own applications . sorry if my explanation is confusing
@LaravelDaily
@LaravelDaily 3 года назад
Ok I understand now. Well, I would use something like this: laravel.com/docs/8.x/sanctum#api-token-authentication
@menma977
@menma977 3 года назад
@@LaravelDaily does that mean it's only separated by the name of the token itself, sorry because I'm just about to try Sanctum because before I always used a passport. and in your course do you teach to make laravel pusher ? , because I've tried to use laravel pusher. to take care of it takes extra time maybe because my coding is not correct. by the way thank you for the response sir
@LaravelDaily
@LaravelDaily 3 года назад
No, I don't have courses about Pusher yet. And for Sanctum, this is not a question I can answer in a short comment, please try it out yourself.
@edhamrabuan8988
@edhamrabuan8988 3 года назад
Never learn this things in college🤣
@fatkur
@fatkur Год назад
cool
Далее
Good APIs Vs Bad APIs: 7 Tips for API Design
5:48
Просмотров 227 тыс.
NOOOO 😂😂😂
00:14
Просмотров 13 млн
Laravel Eloquent: Deeper Relationships with One Query
10:37
Laravel Dusk: painless browser automation
20:49
Просмотров 15 тыс.
How principled coders outperform the competition
11:11
9 Tips for Shorter Laravel Code
10:16
Просмотров 61 тыс.
The Tools I Use to Build Products in Laravel
19:00
Просмотров 22 тыс.
Eloquent Performance: TOP 3 Mistakes Developers Make
7:59