Web API

Welcome to this review of Web API, the 8th module of the Pluralsight course One ASP.NET From Scratch by Jesse Liberty and Jeff Fritz.

jeff-fritz-v1

Jeff Fritz is a Program Manager for Microsoft in the ASP.NET and Azure Developer Experience teams.

Currently, he leads the NuGet team and manages the MSDN Web Developer Tools blog.

Prior to joining Microsoft, he was a Microsoft MVP, ASPInsider, INETA Community Champion and Developer Advocate for Telerik.

Also in this series:

Part 1 – One ASP.NET From Scratch
Part 2 – Advanced Web Forms
Part 3 – MVC
Part 4 – Advanced MVC
Part 5 – MVC and AJAX
Part 6 – Web Pages
Part 7 – Web API
Part 8 – SignalR

Web API

Web API is RESTful services, with a modern HTTP programming model, ASP.NET Routes and built-in content negotiation.

It supports Model Binding and Validation.

Jeff gives a quick introduction to REST here, teaching us that REST is Stateless, Cacheable, and embraces the HTTP protocol.

For an in depth understanding of REST, see REST Fundamentals by Howard Dierking.

Jeff also describes some of the features of the modern programming model.

First Web API Demo

Jeff creates an ASP.NET project with the Web API template, and adds the Serialization framework.

In Product.cs we see that we specify properties as Data Members with the [DataMember] attribute.

We see in ValuesController that we are inheriting from ApiController. This is an easy way to distinguish this from a MVC controller.

This controller has methods for each of the HTTP verbs: Get, Post, Put and Delete.

We see an example of how we can use Fiddler‘s Compose feature to build requests to run against our web server.

Jeff finds an improvement we can make to our API service: returning a HttpResponseMessage with a 201 created status.

We can also return the location of where our consumers products were stored, in the HTTP header.

Content Negotiation

We can request our data in a particular format. For example:

Accept: application/json
Accept: text/xml

Jeff demonstrates this in Fiddler.

Content Formatters

If we want to deliver content in a different format, we can do this by implementing MediaTypeFormatter and registering with a config.Formatters statement.

Jeff demonstrates a simple text/csv formatter

For further details see Media Formatters in ASP.NET Web API 2.

Summary

Web API is one of the best designed pieces of software for developers to come out of Microsoft in recent years.

In this module of One ASP.NET From Scratch, Jeff offers Pluralsight subscribers an effective high level overview of Web API.

Further Resources

For more adventurous Pluralsight users, there are several full Pluralsight courses on Web API available:

If you would like to learn Fiddler, you can find recommended links on my Performance page.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s