Industry Level REST API using .NET 6 - Tutorial for Beginners

Learn to use .NET 6 to build a REST API. This is a concise, start-to-finish course that developers can use as a template to onboard/structure small to medium sized industry-level CRUD applications.
💻 Code: github.com/amantinband/buber-...
✏️ Course from Amichai Mantinband. Check out his channel: / amichaimantinband
⭐️ Course Contents ⭐️
⌨️ (00:00) Introduction
⌨️ (03:29) Backend server architecture
⌨️ (11:53) Implementing logic of API model
⌨️ (16:40) Testing API requests
⌨️ (20:04) Refactoring routes
⌨️ (20:45) Create model for request data
⌨️ (28:01) Create service interface
⌨️ (30:47) Implement additional methods
⌨️ (36:54) Handling errors
⌨️ (41:10) Refactoring controller and services
⌨️ (1:00:52) Refactoring error handling
⌨️ (1:02:40) Testing API requests
⌨️ (1:05:46) Conclusion
🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news

Пікірлер: 214

  • @overcadostudios
    @overcadostudios Жыл бұрын

    Thank you so much. I was looking for this exact topic and now I have an API I can use for my game studio. It's not breakfasts but the concept is exactly the same. It's definitely a good amount of work to get this much done and we haven't even talked about the database part or securing the endpoints. Looking forward to that.

  • @ipoop4359
    @ipoop43599 ай бұрын

    This tutorial is more for people who have experience in building RESTFULL applications. I used to make them in javascript and now I switched to C# so its more like a refresher for the syntax

  • @memoryleakerz

    @memoryleakerz

    23 күн бұрын

    Hell yeah! same here, from TypeScript to C#, which feels a bit more natual than JS -> C#, but I cannot believe how rich the .NET Framework is! And how is it from the first line of code, has the feeling to that it was built for industry standards. Just a great way of building APIs

  • @kingofhiskingdom4616
    @kingofhiskingdom46162 жыл бұрын

    Congratulations on 6M subscribers . The family is getting bigger day after day 🌹😍😍

  • @csilipo
    @csilipo2 жыл бұрын

    Hi, I like the way you quickly go thru the tutorial. Some presenters spend hrs on just one concept. Tks Carlo

  • @broutality
    @broutality Жыл бұрын

    Copilot is fun and all, but on a tutorial for beginners it's really annoying pausing the video all the time to go back and check what you wrote because it suggested it and you moved on :) Really nice tutorial!!

  • @aronreis

    @aronreis

    Жыл бұрын

    I actually had to open his repository to know what exactly was on the screen because he doesn't use word wrap

  • @mikicerise6250

    @mikicerise6250

    Жыл бұрын

    Yeah. You can follow if you're just beginner with REST API stuff, not C#, but basically a lot of namespaces and boilerplate code gets generated for him very fast by his AI assistant. Personally I think it's better to write it all out yourself when you're doing katas like this. It's kind of worth it though to hear him say "yeeeessssssss" every time he approves of some AI suggestion. 😍

  • @zZzlBoredlzZz

    @zZzlBoredlzZz

    9 ай бұрын

    You can still pause and type the block. The video would be quite a bit longer if he had to type it all out every time. It's not as bad as a time skip where suddenly there's 50 extra lines of code.

  • @sepi4
    @sepi49 ай бұрын

    Wow that teacher is in a hurry! Would nice to see this without copilot and with more explanations.

  • @srdjus4064
    @srdjus4064Ай бұрын

    Finally a video with nice pace, and without spending too much time on explaining basic stuff.

  • @ItsMePhoebe
    @ItsMePhoebe2 жыл бұрын

    The timing on this is perfect, thank you!

  • @LegitoTV
    @LegitoTV2 жыл бұрын

    Thank you for another great video, can't wait to finish it!

  • @andregraes
    @andregraes Жыл бұрын

    it's the first time I set the speed of the video to 75%! But it's a great content! Thank you!

  • @bekhzodrizayev2120
    @bekhzodrizayev21202 жыл бұрын

    My congratulations to 6 million subscribers. Your channel is so cool🔥❤️

  • @amantinband
    @amantinband2 жыл бұрын

    This was a fun one to make. Really eager to hear what you think! 🤙🏼

  • @jan0195

    @jan0195

    Жыл бұрын

    This is the best video on the topic that I've seen.

  • @user-kj2nw6cj8q

    @user-kj2nw6cj8q

    2 ай бұрын

    please, can i have the extension that open a window and you select options to generate code for Constructors,.. and other action sir? thank you

  • @user-kj2nw6cj8q

    @user-kj2nw6cj8q

    2 ай бұрын

    FOund it guys. I think it is the IntelliCode hotkey that he used which is Ctrl + .

  • @romanemul1
    @romanemul12 жыл бұрын

    I think this video is only for refresher purposes. Nothing new can be learned since nothing is explained.

  • @DivyaGuda
    @DivyaGudaАй бұрын

    Thank you so much for this tutorial. It was great creating my first api and i enjoyed it alot. The way you explained was very nice and on to the point.❤

  • @mariadelosangeleshernandez2698
    @mariadelosangeleshernandez26982 жыл бұрын

    Thank you, it works perfect!

  • @bijianwu5124
    @bijianwu5124 Жыл бұрын

    simply amazing! thanks for it

  • @tgfhtgfh4309
    @tgfhtgfh43092 жыл бұрын

    Learning APIs from Tyson Fury himself! What a day!

  • @obinnailoanya8730

    @obinnailoanya8730

    2 жыл бұрын

    Lmfao 😂😂😂😂😂😂😂

  • @Omerfr31
    @Omerfr312 жыл бұрын

    Great tutorial!

  • @tvanantwerp
    @tvanantwerp2 ай бұрын

    As an experienced TypeScript dev who needed to get up to speed on .NET, this video has been excellent. It can be really hard to find resources in between "tutorial for people who don't code" and "just read the docs lol", so I'm very appreciative!

  • @brcdube
    @brcdube2 жыл бұрын

    .Net 6 and Spring Boot are my favourite backend frameworks

  • @fieryscorpion

    @fieryscorpion

    2 жыл бұрын

    .NET is much more enjoyable to develop with compared to Java/ Spring tbh.

  • @adelajami8731
    @adelajami8731 Жыл бұрын

    Thanks a lot for the valuable information, it is really nice. i would say as i am coming from php Laravel background, Laravel is more advanced in terms of how it is ready to handle and map the request using FormRequest Class for data validation, data rules, and check user authorization, same goes for handling RestFul results, for instance, 404 error, Laravel ORM Eloquent has findOrFail() to return 404 directly. Thanks again and looking forward to a new video. Happy to do joint video to compare between asp and laravel

  • @fieryscorpion
    @fieryscorpion2 жыл бұрын

    Amazing content. Thanks!

  • @faris.abuali
    @faris.abuali11 ай бұрын

    Much informative! Thanks

  • @TheStringBreaker
    @TheStringBreaker Жыл бұрын

    *Phenomenal video!*

  • @Duelweb
    @Duelweb2 жыл бұрын

    Great video !! Thank you!!

  • @sandipgupta4506
    @sandipgupta450623 күн бұрын

    I am new here .. And everything is just keep on going.... nothing is explained properly.... Most useful for experienced ones.

  • @n.o.s.e.-nostressenglish4556
    @n.o.s.e.-nostressenglish45562 жыл бұрын

    good, thanks! I need to learn REST API

  • @CloudNey
    @CloudNey2 жыл бұрын

    Amazing!!

  • @amantinband

    @amantinband

    2 жыл бұрын

    Thanks, CloudNey!

  • @aalbero
    @aalbero Жыл бұрын

    This video was amazing, I learned so much, thank you! I have one question regarding the From factory methods. Are they breaking the "correct" dependency direction? where your Model only needs to know about itself? These seem very handy as you reuse code of creating a breakfast form a request. But now your Model needs to know about the Create and Upsert request records. And if you keep adding more types to create a breakfast from, your model needs to keep adding factory methods and have dependencies on all those external types. Could that be a problem? If so, what coudl be a solution to it?

  • @dev0_018
    @dev0_018 Жыл бұрын

    very well explained, thax for sharing

  • @kewqie
    @kewqie2 жыл бұрын

    For me MatchFirst() accepts a single error, not a List, thus not matching the Problem() arguments you have in your example. What am I missing?

  • @bernardoapelt
    @bernardoapelt6 ай бұрын

    Amazing!!!, thank a lot

  • @iyviish
    @iyviish2 жыл бұрын

    Industry level. Thats what i need

  • @marcoitalia97
    @marcoitalia97 Жыл бұрын

    Thanks mate. 💌

  • @StratOnFire
    @StratOnFire Жыл бұрын

    Thanks so much!

  • @edjogu
    @edjogu2 жыл бұрын

    Maravilloso!!!! One question, in which application did you make the Backend Service Architecture diagram? Thanks :)

  • @phunguyentrong722
    @phunguyentrong7222 жыл бұрын

    best, hope someday php also have industry-level tutorials like this

  • @fieryscorpion

    @fieryscorpion

    2 жыл бұрын

    .NET is much more enjoyable to develop with compared to PHP, Java, Python etc.

  • @name_less227

    @name_less227

    Жыл бұрын

    @@fieryscorpion .NET is a framework, not a language.

  • @gabriel-torres3077
    @gabriel-torres3077 Жыл бұрын

    What extensions do you use on vscode?

  • @Artemisexe-gx4rt
    @Artemisexe-gx4rt Жыл бұрын

    I think it would have been helpful if he went over the extensions he had installed first, or at least listed them in the description, because his files have some code auto generated in them and it would have been helpful to be able to have a similar experience instead of cutting a pasting from the repo files each time.

  • @luanassis9842

    @luanassis9842

    Жыл бұрын

    Agree

  • @robertguzman6462

    @robertguzman6462

    8 ай бұрын

    Look for his youtube channel. He has already made a video dedicate to the extensions he uses

  • @user-ml7bl4dy2q
    @user-ml7bl4dy2q Жыл бұрын

    Very good content, I have a question- why design patterns not implemented

  • @sharecodecamp
    @sharecodecamp2 жыл бұрын

    Awesome work !.. 🥰🥰

  • @amantinband

    @amantinband

    2 жыл бұрын

    Thanks! 🥰

  • @bakihz7997
    @bakihz7997 Жыл бұрын

    Great video. Although I can't follow your shortcuts. Which shortcuts do you use? Can you point me to where I can learn these shortcuts? Which extension?

  • @vasiliskarvelas5488

    @vasiliskarvelas5488

    Жыл бұрын

    Do you mean vim?

  • @ruslanlevkov7484
    @ruslanlevkov74842 жыл бұрын

    What terminal do you use? Please share the settings for it.

  • @ToMontrond
    @ToMontrond Жыл бұрын

    Thank you for sharing your knowledge. I have one question - why did you create a new entity (breakfast) using the PUT method?

  • @automationguy5600
    @automationguy5600 Жыл бұрын

    downloaded, it worked, the author ty

  • @2005Azm
    @2005Azm2 жыл бұрын

    Wonderful

  • @seanmui8772
    @seanmui87722 жыл бұрын

    I've just seen real software engineering bare naked.. Thanks for the efforts to make this video.

  • @amantinband

    @amantinband

    2 жыл бұрын

    Thanks, Sean 😊

  • @seanmui8772

    @seanmui8772

    2 жыл бұрын

    @@amantinband Following you via your KZread Channel.

  • @felixliles9389
    @felixliles9389Ай бұрын

    Well done

  • @sohammahi7621
    @sohammahi76212 жыл бұрын

    Very Good Knowledge

  • @amantinband

    @amantinband

    2 жыл бұрын

    Thanks, Soham 🙏

  • @dhanviakash726

    @dhanviakash726

    2 жыл бұрын

    Can I know from where can I learn .net for web development in vs code not visual studio, because my lapy does not support visual studio

  • @mr.bezlimix3207
    @mr.bezlimix32073 ай бұрын

    bro, u best

  • @lifeisbeautifu1
    @lifeisbeautifu19 ай бұрын

    Amazing.

  • @tika8134
    @tika8134 Жыл бұрын

    33:00 I failed in upserting and deleting. I have used NoContent(), but the status is still 200 not 204. And when I get the same id, the data is still not updated. Kindly need your help. Many thanks!

  • @itexpert4193
    @itexpert41932 жыл бұрын

    great

  • @ibrahim-so4399
    @ibrahim-so4399 Жыл бұрын

    Reminder for 21:52: if you create a class named :Breakfast then name the class Breakfast, this can cause compiler error. I get the error and fixed by changing the class name

  • @Hemecan.
    @Hemecan.2 жыл бұрын

    Hello from Turkey 🇹🇷

  • @pritpalsingh5927
    @pritpalsingh5927 Жыл бұрын

    all i will remember from this tutorial is that every time the code get suggested, he says YES!!! , but its good for beginner point of view, thanks for the video

  • @NotAHomelessGamer
    @NotAHomelessGamer10 ай бұрын

    What template are we suppose to use for these projects in visual studio 2022? Why are you pasting the code for the api in a tutorial video for creating an api at 6:57?

  • @Furki4_4
    @Furki4_4 Жыл бұрын

    I love you freeCodeCamp, just... just wanted to say that 😊

  • @rohan-san8148
    @rohan-san814818 күн бұрын

    thank you so much for this tutorial. can you make a tutorial, about how can we undo and redo the deleted and updated function in c# .net.

  • @JuniorMayhe
    @JuniorMayhe9 ай бұрын

    Thanks for sharing this. My concern here is that you have developed a tightly coupled solution heavily dependent on your ErrorOr package. If there arises a need to remove or replace this package, it could impose a substantial workload on developers. Additionally, adding this package appears to complicate the solution, making it harder to maintain. It is essential to notify viewers at the beginning of the video that the solution presented relies entirely on a third-party package. 😓😓

  • @sebastianmedina5106

    @sebastianmedina5106

    8 ай бұрын

    agree, It is sad to know that it did not conform to a standard and that we will not see a code like this outside.

  • @dylan-j-gerrits
    @dylan-j-gerrits Жыл бұрын

    The video is good, but it lacks of explanation about why and what you are doing something.

  • @dtnguyen75
    @dtnguyen754 ай бұрын

    How do you get the PowerShell commandline to show the .NET core version?

  • @DKHStudios
    @DKHStudios Жыл бұрын

    What do you use for code completion?

  • @nesa6582
    @nesa65829 ай бұрын

    So if i was doing some project following this architecture and i was to implement Ef core, i would install it in BBF.Contracts folder??????

  • @mau9175
    @mau9175 Жыл бұрын

    my vscode doesnt add namespaces automatically as yours. why is that? tried a lot of related stuff i found on internet and nothing worked =/

  • @quachhengtony7651
    @quachhengtony7651 Жыл бұрын

    Haha love the "....yes"

  • @brijeshmorya9737
    @brijeshmorya97372 жыл бұрын

    Good content

  • @amantinband

    @amantinband

    2 жыл бұрын

    Thanks, Brijesh 🤙

  • @XeronosKuro
    @XeronosKuro Жыл бұрын

    So I am having several issues trying to get the test ID to respond on the Upsert, Get, and Delete breakfast http pages It's giving me a 405 method not allowed error message after i click on Send Request. Am I using the wrong localport, or is there an actual setting that I've overlooked?

  • @matheusdeandrade6135

    @matheusdeandrade6135

    Жыл бұрын

    Did you solve it ?

  • @keshav.mishra
    @keshav.mishra2 жыл бұрын

    Pleasure that we have freecode camp xD

  • @IcedCupcakes
    @IcedCupcakes9 ай бұрын

    Not for complete beginner programmers but for C# and .NET beginners with other programming experience. I have frontend experience and I'm pausing a lot to google stuff lol

  • @piertFB
    @piertFB2 жыл бұрын

    dudes whats the name od that extension that autocomplete properties or constructors? :/ PD. I like this course

  • @digitalfragrant

    @digitalfragrant

    5 ай бұрын

    it is autopilot I guess

  • @rdothl5
    @rdothl5 Жыл бұрын

    Couldnt you just save statusCode number to Error class along with its string representation?

  • @Michael-it2jz
    @Michael-it2jz Жыл бұрын

    Can anyone help me understand the naming choice of the "requestToBreakfastResult" variable?

  • @kopilkaiser8991
    @kopilkaiser89919 ай бұрын

    I always watch teaching tutorial videos. Your programming style is polished, understandable, and you are able to explain simplifying the concepts 👌🏼

  • @shockin95
    @shockin954 ай бұрын

    Well, I guess this one is more appropriated for those who are already familiar with high-typing languages like Java for example. I've been building a few RESTful apps in Java using Spring and it really shocked me how similar both syntaxes actually are.

  • @RealValkor

    @RealValkor

    3 ай бұрын

    Same here, started learning java recently and it's shocking how similar it is to C# lol.

  • @rayankhan12
    @rayankhan122 жыл бұрын

    I really want to follow this course but it doesn't mention the prerequisites (which every course should) so as a beginner to programming, I don't want to waste my time watching something I don't understand :)

  • @amantinband

    @amantinband

    2 жыл бұрын

    Ooh, that's great feedback. Thanks, Rayan! Tech prerequisites: C#/.NET, JSON, HTTP, client-server communication Software prerequistes: .NET 6 SDK, VSCode I have a tutorial for setting VSCode similar to what I have in the video: kzread.info/dash/bejne/n2182NV7YZDOcdI.html

  • @bakihz7997

    @bakihz7997

    2 жыл бұрын

    @@amantinband Thank you so much

  • @YBXtreminal
    @YBXtreminal2 жыл бұрын

    יוחאי ימלך

  • @pranavtallewar6551
    @pranavtallewar65516 ай бұрын

    How do you write unit test for controllers written?

  • @rsemihkoca
    @rsemihkoca7 ай бұрын

    24:04 how did you get that list of Unwrap arguments etc ?

  • @ArmoFreekickerz
    @ArmoFreekickerz Жыл бұрын

    which terminal is he using ? looks really nice

  • @loryteck
    @loryteck Жыл бұрын

    Sacrificing a lot of readability over some fancy sophisticate code, which make sense to people who use c# for a long time(maybe) but not for begginers or even intermediate developers, sometimes the best code is the way the whole team write code, not because you wrote 5 lines less is better. Just my opinion, discovered a lot of thing that I didn't know about but after all not sure I will implement them, as took me time to understand them while I want my code to be understood in 5 seconds when you read it.

  • @andtv1992

    @andtv1992

    Жыл бұрын

    Do you how to use that syntax? VSCode highlights all the code as error when I use that syntax and I haven't found a way to fix it. Am I missing any extension or something?

  • @thatcipher
    @thatcipher Жыл бұрын

    Totally offtopic and dont know if its already asked here But how do you setup the terminal like that?

  • @user-ht9st4up8q
    @user-ht9st4up8q4 ай бұрын

    I'm starting to learn C# , does anyone what is the IDE for the Models that auto fill in the getter and setter?

  • @invictuz4803
    @invictuz4803 Жыл бұрын

    I know it's not important but I really don't get the use case of this app. Private breakfast events?

  • @davidhoong3817
    @davidhoong38172 жыл бұрын

    what's your used extension for IntelliSens ecode completion? It is pretty cool! I want it.

  • @sreejithshaji6542

    @sreejithshaji6542

    Жыл бұрын

    did u got it ??

  • @soumadip_skyy_banerjee
    @soumadip_skyy_banerjee2 жыл бұрын

    ❤️

  • @ajbali
    @ajbali Жыл бұрын

    What code completion extension are you using? It is so cool!

  • @sreejithshaji6542

    @sreejithshaji6542

    Жыл бұрын

    u find it ?

  • @abdulpianist9731
    @abdulpianist9731 Жыл бұрын

    short and crisp

  • @ildefonsocastro5219
    @ildefonsocastro52192 жыл бұрын

    Love the video i just encounter a problem, when trying 18:10 request i get "HTTP/1.1 500 Internal Server Error" why could it be?

  • @weizhao7896

    @weizhao7896

    Жыл бұрын

    me too, but i get an error 404...

  • @mikicerise6250
    @mikicerise6250 Жыл бұрын

    You say the sexiest "yes" I've ever heard. It's practically ASMR. 😂

  • @sydguitar99
    @sydguitar99 Жыл бұрын

    So what program is he using when creating the project and solution?

  • @justinallen3037

    @justinallen3037

    8 ай бұрын

    Command line

  • @quachhengtony7651
    @quachhengtony76512 жыл бұрын

    .NET goated

  • @AveN7ers
    @AveN7ers Жыл бұрын

    It's a bit fast not gonna lie. I find myself pausing and rewinding every 5 seconds just to keep up. Either explain more what you're doing and why or label it as an intermediate/advanced course not a beginners course.

  • @hervinsonsamson1531

    @hervinsonsamson1531

    Жыл бұрын

    I agree

  • @ameykulkarni8165

    @ameykulkarni8165

    Жыл бұрын

    Absolutely true.

  • @christian.mar.garcia

    @christian.mar.garcia

    Жыл бұрын

    Well, the title says industry level, so I think that is not beginner level.

  • @AbdullahWins

    @AbdullahWins

    3 ай бұрын

    people will complain even if it's free.😅 just slow down the video, take notes, research what you don't understand. this is how you self learn. and first of all, learn to appreciate what you get for free. 🙆🏻

  • @thewalrusdragon9579

    @thewalrusdragon9579

    2 ай бұрын

    @@AbdullahWinsit’s a fair criticism of the lesson though. You think freeCodeCamp puts all this time putting these together but don’t care about the user feedback just because they provide it for free? They still make money off of site traffic and views, so they definitely care to make sure their target audience happy with their product. If it’s not “too fast” for you then great, that’s good for you, doesn’t mean you get to be the gatekeeper of criticism on their platform.

  • @shanthi22820
    @shanthi2282010 ай бұрын

    I am getting 404 on CreateBreakfast request, please help

  • @bobsort
    @bobsort2 жыл бұрын

    With windows 95, everyone was so excited that they don't have to stare into a black screen of text and don't have to write an entire line of commands to do a simple task like openning an editor. These days, seems developers are going retro all the way, and like to type in every command to do things that you can do with just a right click or a keyboard shortcut. Also I wouldn't suggest surrounding blocks of code with braces unless it is really necessary, you are teaching a thing to new developers that will cause days of headache for seniors to debug. As for data store, when I teach juniors, I always put the data in a different class that does the crud internally (DAL concept), then call methods of that class instead to avoid distracting them from what actually are trying to learn. (your storage is inside your service code

  • @oziousmegasus9201

    @oziousmegasus9201

    Жыл бұрын

    personally, knowing how buttons of IDEs do the works is nessesary. Juniors then can use IDEs without questioning what lays under the hood. Furthermore, devs should know how to use terminal.

  • @VincentGroenewold
    @VincentGroenewold2 жыл бұрын

    Someone is displaying features of some presentation software I think. :)

  • @amantinband

    @amantinband

    2 жыл бұрын

    Haha It's figma 😎

  • @shoooozzzz
    @shoooozzzz2 жыл бұрын

    **intellisense makes suggestion** Yeeees

  • @ofio
    @ofio Жыл бұрын

    Do yourself a favor and put playback speed back to normal @ 0.75.

  • @mohsinafzal3852
    @mohsinafzal3852 Жыл бұрын

    After watching 15 minutes i am like.. kehna kya chahte ho.. however it's a good work sir but should be more descriptive.. especially for shortcuts

  • @MrCalletennis
    @MrCalletennisАй бұрын

    Where is the definition of the api that just randomly gets pasted out of nowhere?