ASP.NET Web API 2 Hands-On
In this course you will learn how to build a RESTful web service with ASP.NET Web API 2 and integrate it into an ASP.NET web application. You will use Visual Studio 2015 Community Edition, which is completely free. Whether you are new to web services or already have built a web service with the first release of Web API or any other framework doesn’t matter, you will build your new service from the ground up. What you already should have is a little experience in C#. Having some knowledge in JQuery and building web applications in general might help, but is not absolutely necessary.
By the end of this course, you will be able to build a RESTful web service with Web API 2 by yourself, make GET, POST, PUT and DELETE HTTP Requests with JQuery and AJAX and use the new Attribute Routing of Web API 2 to control your REST web service design by creating custom URIs. You will also get a sneak peak at Entity Framework Code First migrations and learn how to save your data persistently in a database.
The only tools we will use in this course are Visual Studio 2015 Community Edition and Google Chrome. Both are available for download for free.
All source codes and exercise solutions of this course are also available for download, of course.
Welcome to the "ASP.NET Web API 2 Hands-On" course and thank you very much for signing up!
In this short introduction, you will see what you're going to learn in this course. Have fun!
Create the web service
When you want to create a Web Service with Web API 2, you may find yourself in two different situations. You either want to build a new Web Application from scratch and use Web API 2 with that application, or you already have build a Web Application and add Web API 2 afterwards. In this lecture, we cover the first situation.
In this lecture, you will learn how to add Web API 2 to an already built Web Application in Visual Studio.
Your first HTTP request
Web API uses the Model-View-Controller pattern. In this lecture, you will learn what this pattern actually means, and you will create your first model class in C#.
The controller implements the actual logic to a corresponding model. You learn to build your first controller in this lecture.
We want to use our new web service within a simple website. So we're going to add a new HTML page and install JQuery through the NuGet Package Manager to prepare our web application for the first web service call.
You will make your first GET HTTP Request with JQuery and Web API 2.
What does actually happen when you're calling a RESTful web service and why does it work with Web API 2? You'll find the answer in this lecture.
In the last lectures, we received all available objects from the service. Now we only want to get a certain one. Here you will learn to write the server part.
In this lecture we're going to write the client part to get a single object from the service. Instead of $.getJSON(), this time we'll go into a little more detail by using $.ajax().
The last two of the four HTTP methods. We will change an object by using a PUT request and remove an object by using DELETE.
URI customization & Entity Framework integration
So far, we know how to make any kind of HTTP Request with Web API and JQuery. But we only get a particular object by using its ID. What about using another property, e.g. the name? We'll cover this task in this situation.
Web API 2 delivers the so called Attribute Routing. This gives you more control over your API design. You're free to choose any URI for your routes, create a typical RESTful structure and don't have to rely on the routing tables of the first release of Web API anymore.
Attribute Routing is not only about defining custom URIs. In this lecture you will learn how to use prefixes and constraints with this new feature.
You're ready to start creating web applications with Web API 2. Congratulations! The next step is to save your data persistently in a database. Entity Framework enables you to do this. In this lecture, you will learn the first steps of how to use Web API with Entity Framework and look for changes on your objects in the database.