Chapters (104)
- 0:00Introduction
- 3:02Creating the project
- 4:01Exploring the generated project files
- 10:03Trusting the self-signed certificate
- 11:36Exploring the default Swagger UI page
- 12:30Configuring Visual Studio Code settings
- 14:33Introduction
- 15:45Adding an entity
- 20:39Ading an in-memory repository
- 26:40Creating the controller
- 30:42Implemeting GET all items
- 33:37Implemeting GET single item
- 37:47Returning a 404 NotFound status code
- 39:57Introduction
- 41:23What is dependency injection?
- 46:14Extracting the repository interface
- 47:44Injecting the repository into the controller
- 48:53Registering the repository as a singleton
- 52:32Adding a Data Transfer Object DTO
- 55:46Creating the AsDto extension method
- 58:59Introduction
- 59:45Implementing POST
- 1:07:39Adding validations via data annotations
- 1:10:00Implemeting PUT
- 1:17:33Implementing DELETE
- 1:20:46Introduction
- 1:24:44Using Postman
- 1:27:53Creating a MongoDB repository
- 1:29:42Using the MongoDB.Driver NuGet package
- 1:33:28Implementing MongoDB Create
- 1:33:57Running the MongoDB Docker container
- 1:38:47Configuring MongoDB connection settings
- 1:42:38Registering the MongoClient singleton
- 1:48:02Testing the MongoDB integration
- 1:50:04Exploring the created database in VS Code
- 1:52:45Implemeting MongoDB Get, Update and Delete
- 2:02:27Introduction
- 2:06:46Using the Async suffix
- 2:09:04Using tasks in the repository
- 2:11:50Using async and await
- 2:14:28Returning completed tasks
- 2:18:16Using tasks in the controller
- 2:21:23Testing async methods in Postman
- 2:27:02Introduction
- 2:30:06Enabling authentication in MongoDB
- 2:33:36Using the .NET Secret Manager
- 2:36:40Using the MongoDB credentials in the service
- 2:40:00Introduction to Health Checks
- 2:42:28Adding an endpoint for health checks
- 2:44:46Adding a MongoDB health check
- 2:48:41Adding checks for readiness and liveness
- 2:53:51Customizing the health check response
- 2:58:59Exploring other health check NuGet packages
- 3:00:44Introduction
- 3:08:28What is Docker?
- 3:17:54Removing https redirection
- 3:20:39Generating a Dockerfile in VS Code
- 3:30:40Building the Docker image
- 3:33:00Adding a Docker network
- 3:34:07Running the containers in the Docker network
- 3:40:36Running the REST API in Docker
- 3:42:02Pushing the container image to Docker Hub
- 3:46:02Exploring the image in Docker Hub
- 3:46:32Pulling the image back to the local box
- 3:49:20Introduction
- 3:54:05What is Kubernetes?
- 4:04:06Enabling a Kubernetes cluster in Docker Desktop
- 4:06:12Installing the Kubernetes extension for VS Code
- 4:06:58Declaring the REST API Kuberentes deployment
- 4:14:35Creating a secret in Kubernetes
- 4:17:28Declaring health probes
- 4:19:14Declaring the REST API Kubernetes service
- 4:22:56Creating the REST API resources in Kubernetes
- 4:26:15Declaring the MongoDB Kubernetes StatefulSet
- 4:36:09Declaring the MongoDB Kubernetes service
- 4:38:27Creating the MongoDB resources in Kubernetes
- 4:40:42Testing the REST API hosted in Kubernetes
- 4:42:08Exploring the Kubernetes self-healing capability
- 4:46:04Scaling Kubernetes pods
- 4:47:38Adding logs via ILogger
- 4:52:04Getting a new image version into Kubernetes
- 4:53:23Load balancing requests across pods
- 4:56:23Introduction
- 4:57:04What is unit testing?
- 5:01:19What is test driven development?
- 5:04:25Restructuring files and directories
- 5:08:25Creating the xUnit test project
- 5:09:15Building multiple projects in VS Code
- 5:13:10Adding NuGet packages for unit testing
- 5:14:35Testing GetItemAsync unexisting item
- 5:18:35Using the AAA pattern
- 5:19:31Stubbing dependencies via Moq
- 5:26:52Running tests in VS Code
- 5:28:05Using the .NET Core Test Explorer extension
- 5:30:55Testing GetItemAsync existing item
- 5:38:01Using FluentAssertions
- 5:41:46Testing GetItemsAsync
- 5:45:41Testing CreateItemAsync
- 5:53:13Testing UpdateItemAsync
- 5:57:51Testing DeleteItemAsync
- 5:59:40Refactoring and catching regressions
- 6:10:50Using TDD to test a yet to be created method
- 6:19:07Going back to green by fixing the failing test
- 6:21:19Testing the new controller method in Postman
Show the creator's full description
Learn how to create a REST API end-to-end from scratch using the latest .NET 5 innovations and Visual Studio Code. The API will be written in C#.
💻 Get the code: https://youtube.dotnetmicroservices.com/net5restapi-10
✏️ Course developed by Julio Casal. Check out his channel: https://www.youtube.com/c/jcasalt
🔗 Julio's website: https://dotnetmicroservices.com
⭐️ Course Contents ⭐️
Getting Started
0:00:00 Introduction
0:03:02 Creating the project
0:04:01 Exploring the generated project files
0:10:03 Trusting the self-signed certificate
0:11:36 Exploring the default Swagger UI page
0:12:30 Configuring Visual Studio Code settings
Entity, Repository, Controller GET
0:14:33 Introduction
0:15:45 Adding an entity
0:20:39 Ading an in-memory repository
0:26:40 Creating the controller
0:30:42 Implemeting GET all items
0:33:37 Implemeting GET single item
0:37:47 Returning a 404 NotFound status code
Dependency Injection, DTOSs
0:39:57 Introduction
0:41:23 What is dependency injection?
0:46:14 Extracting the repository interface
0:47:44 Injecting the repository into the controller
0:48:53 Registering the repository as a singleton
0:52:32 Adding a Data Transfer Object DTO
0:55:46 Creating the AsDto extension method
POST, PUT, DELETE
0:58:59 Introduction
0:59:45 Implementing POST
1:07:39 Adding validations via data annotations
1:10:00 Implemeting PUT
1:17:33 Implementing DELETE
Persisting Entities with MongoDB
1:20:46 Introduction
1:24:44 Using Postman
1:27:53 Creating a MongoDB repository
1:29:42 Using the MongoDB.Driver NuGet package
1:33:28 Implementing MongoDB Create
1:33:57 Running the MongoDB Docker container
1:38:47 Configuring MongoDB connection settings
1:42:38 Registering the MongoClient singleton
1:48:02 Testing the MongoDB integration
1:50:04 Exploring the created database in VS Code
1:52:45 Implemeting MongoDB Get, Update and Delete
Tasks, Async and Await
2:02:27 Introduction
2:06:46 Using the Async suffix
2:09:04 Using tasks in the repository
2:11:50 Using async and await
2:14:28 Returning completed tasks
2:18:16 Using tasks in the controller
2:21:23 Testing async methods in Postman
Secrets and Health Checks
2:27:02 Introduction
2:30:06 Enabling authentication in MongoDB
2:33:36 Using the .NET Secret Manager
2:36:40 Using the MongoDB credentials in the service
2:40:00 Introduction to Health Checks
2:42:28 Adding an endpoint for health checks
2:44:46 Adding a MongoDB health check
2:48:41 Adding checks for readiness and liveness
2:53:51 Customizing the health check response
2:58:59 Exploring other health check NuGet packages
Docker
3:00:44 Introduction
3:08:28 What is Docker?
3:17:54 Removing https redirection
3:20:39 Generating a Dockerfile in VS Code
3:30:40 Building the Docker image
3:33:00 Adding a Docker network
3:34:07 Running the containers in the Docker network
3:40:36 Running the REST API in Docker
3:42:02 Pushing the container image to Docker Hub
3:46:02 Exploring the image in Docker Hub
3:46:32 Pulling the image back to the local box
Kubernetes
3:49:20 Introduction
3:54:05 What is Kubernetes?
4:04:06 Enabling a Kubernetes cluster in Docker Desktop
4:06:12 Installing the Kubernetes extension for VS Code
4:06:58 Declaring the REST API Kuberentes deployment
4:14:35 Creating a secret in Kubernetes
4:17:28 Declaring health probes
4:19:14 Declaring the REST API Kubernetes service
4:22:56 Creating the REST API resources in Kubernetes
4:26:15 Declaring the MongoDB Kubernetes StatefulSet
4:36:09 Declaring the MongoDB Kubernetes service
4:38:27 Creating the MongoDB resources in Kubernetes
4:40:42 Testing the REST API hosted in Kubernetes
4:42:08 Exploring the Kubernetes self-healing capability
4:46:04 Scaling Kubernetes pods
4:47:38 Adding logs via ILogger
4:52:04 Getting a new image version into Kubernetes
4:53:23 Load balancing requests across pods
Unit Testing and TDD
4:56:23 Introduction
4:57:04 What is unit testing?
5:01:19 What is test driven development?
5:04:25 Restructuring files and directories
5:08:25 Creating the xUnit test project
5:09:15 Building multiple projects in VS Code
5:13:10 Adding NuGet packages for unit testing
5:14:35 Testing GetItemAsync unexisting item
5:18:35 Using the AAA pattern
5:19:31 Stubbing dependencies via Moq
5:26:52 Running tests in VS Code
5:28:05 Using the .NET Core Test Explorer extension
5:30:55 Testing GetItemAsync existing item
5:38:01 Using FluentAssertions
5:41:46 Testing GetItemsAsync
5:45:41 Testing CreateItemAsync
5:53:13 Testing UpdateItemAsync
5:57:51 Testing DeleteItemAsync
5:59:40 Refactoring and catching regressions
6:10:50 Using TDD to test a yet to be created method
6:19:07 Going back to green by fixing the failing test
6:21:19 Testing the new controller method in Postman
❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp
Description and video by freeCodeCamp.org. This page is an independent companion view; the video is embedded from YouTube.