I love the Echo framework, but for a very basic REST API or for learning Go and the stdlib, these new 1.22 updates for http, and Go itself make learning really good. Awesome video. As a TS dev, I am so used to reaching for libraries, but Go is so simple and elegant, you almost don't need to ever reach outside the stdlib 90% of the time. I can see why folks will reach for a router beyond the native one, though, because it definitely does abstract a few things away like creating a new mux for another router, stripping prefixes and defining the method in the route path. Enjoy your content brother, keep it up!
Again, thanks for the great work. very motivational, and helps me to move forward. I hope in your next video you are going to explain the "Functional Options" pattern you have used for "Middleware Chaining". Coz in this video you have just quietly typed it. :)))
Hey good video. The only nitpicking point I would make is when you implement the middleware with a for loop with a complicated reverse iterator when all you needed to do is use a straight forward for range statement and assume that the middlewares passed in are defined in the reverse order. That way you can avoid that unnecessary reverse logic
Hi boss, I love your go content. I usually watch you and you use vim/nvim in your vscode with ease. I am a fulltime nvim user and I struggle to navigate around vscode even though using nvim extension. I love the way you navigate around. I looked at the description I couldn't find your github. Would you be able to share your vscode configs. I would love to implement it. Thank you for your awesome content.
Thank you! I actually don't use vim. It looks like it because I made it so, but I'm just using the VSCode keybinds, I havent got the need to use VIM because I'm gotten pretty efficient with them. Here are the dotfiles: github.com/sikozonpc/dotfiles Not sure if they're 100% updated tho.
for sub-routing, did you change the handler in the server to V1, or left the router, I tried it, if I leave Handler: router, it does not take effect , if I change it fo Handler: v1, it takes effect, how would you handle multiple subrouting?
Try to change the endpoint handlers to the v1 the mux if that is not working. To handle multiple routing I would do the same as I did but then you need to do what I mention above. You could create an "adminRouter" and all of the admin handlers needed to be from that router.
I agree with you there.I ran the code for this video in my golan, but it does not match the results shown in the video. I am using the go version 1.22.1.The problem lies in the sub routing set by v1.I set the port to 8081.When I use curl -H "Authorization: Bearer token" localhost:8081/api/v1/users/23232 . The returned result is 404 page not found.What is the reason for this?
@@TiagoTaquelim I have found the answer.This way of writing will have the same effect as in the video middleWareChain := MiddlewareChain(RequestLogMiddleware, RequestAuthMiddleware) childRouter := http.NewServeMux() childRouter.Handle("/api/v1/", http.StripPrefix("/api/v1", router)) server := http.Server{ Addr: s.addr, Handler: middleWareChain(childRouter), }
I love the Echo framework, but for a very basic REST API or for learning Go and the stdlib, these new 1.22 updates for http, and Go itself make learning really good. Awesome video. As a TS dev, I am so used to reaching for libraries, but Go is so simple and elegant, you almost don't need to ever reach outside the stdlib 90% of the time. I can see why folks will reach for a router beyond the native one, though, because it definitely does abstract a few things away like creating a new mux for another router, stripping prefixes and defining the method in the route path. Enjoy your content brother, keep it up!
Yee I feel the same! Thanks bro!
Great Video , I'm learning Go and I'm trying to use stdlib before trying any external library, your videos are helping me with this.
hey me too! happy I found this channel
nice and clear
Another great video Tiago!
Obrigado Tiago por mais um video incrível! Abraço de Moçambique!
Obrigado eu!
The tutorial explanation is very clear and easy to learn! The style is also good!
Very nice and useful tips. Thank you.
Thanks for sharing buddy.
Nice and clean. Thanks
I really enjoyed.
Waiting for more of your videos about implementing web services with just stlib
Again, thanks for the great work. very motivational, and helps me to move forward.
I hope in your next video you are going to explain the "Functional Options" pattern you have used for "Middleware Chaining". Coz in this video you have just quietly typed it. :)))
good stuff, thank you!
Amazing content, helping a lot
Obrigado pelo conteúdo, direto do Brasil! 🇧🇷
@@marcelofeitoza3918 Muito obrigado Marcelo!
Tnx man!
Hey good video. The only nitpicking point I would make is when you implement the middleware with a for loop with a complicated reverse iterator when all you needed to do is use a straight forward for range statement and assume that the middlewares passed in are defined in the reverse order. That way you can avoid that unnecessary reverse logic
Great tutorial! Let's GO hahaha
Obrigado amigo! Very helpful :)
Tia'-go', haha. Love your videos!
🤣 never though of that
Thank you
can you please do a tutorial about using redis as a cache write-through in golang
Yes man!!!
very helpful!
Hi boss, I love your go content. I usually watch you and you use vim/nvim in your vscode with ease. I am a fulltime nvim user and I struggle to navigate around vscode even though using nvim extension. I love the way you navigate around. I looked at the description I couldn't find your github. Would you be able to share your vscode configs. I would love to implement it.
Thank you for your awesome content.
Thank you!
I actually don't use vim. It looks like it because I made it so, but I'm just using the VSCode keybinds, I havent got the need to use VIM because I'm gotten pretty efficient with them.
Here are the dotfiles: github.com/sikozonpc/dotfiles
Not sure if they're 100% updated tho.
@@TiagoTaquelim Thank you so much 😃
for sub-routing, did you change the handler in the server to V1, or left the router, I tried it, if I leave Handler: router, it does not take effect , if I change it fo Handler: v1, it takes effect, how would you handle multiple subrouting?
Try to change the endpoint handlers to the v1 the mux if that is not working.
To handle multiple routing I would do the same as I did but then you need to do what I mention above. You could create an "adminRouter" and all of the admin handlers needed to be from that router.
@@TiagoTaquelim Do you mean v1.HandleFunc("GET /users/{userID}", handler) coz that didn't work either
I agree with you there.I ran the code for this video in my golan, but it does not match the results shown in the video. I am using the go version 1.22.1.The problem lies in the sub routing set by v1.I set the port to 8081.When I use curl -H "Authorization: Bearer token" localhost:8081/api/v1/users/23232 . The returned result is 404 page not found.What is the reason for this?
@@TiagoTaquelim I have found the answer.This way of writing will have the same effect as in the video
middleWareChain := MiddlewareChain(RequestLogMiddleware, RequestAuthMiddleware)
childRouter := http.NewServeMux()
childRouter.Handle("/api/v1/", http.StripPrefix("/api/v1", router))
server := http.Server{
Addr: s.addr,
Handler: middleWareChain(childRouter),
}
@@liyang-ib6lk that code works
If server fails to start it will still print the message that it has started
you sounds like chamber from valorant man, that's cool
🤣🤣
How can i automate documentation for my apis Tiago when using this approach instead of using other web frameworks?
What's the theme broo??
What font and theme are you using?
The theme is Gruvbox and font is Menlo
@@TiagoTaquelim Which one? I see a lot in the extensions list
@@bororobo3805 The one from jdinhlife
What theme is this?
Gruvbox.
thanks for your content, but now I need to hardcode the method type? who designs this wtf haha