9 Creating a Web API for mobile and client applications using MVC
This chapter covers
- Creating a Web API controller to return JSON to clients
- Using attribute routing to customize your URLs
- Generating a response using content negotiation
- Applying common conventions with the [ApiController] attribute
In the previous five chapters, you’ve worked through each layer of a server-side rendered ASP.NET Core application, using Razor Pages to render HTML to the browser. In this chapter, you’ll see a different take on an ASP.NET Core application. Instead of using Razor Pages, we’ll explore Web APIs, which serve as the backend for client-side SPAs and mobile apps.
You can apply much of what you’ve already learned to Web APIs; they use the same MVC design pattern, and the concepts of routing, model binding, and validation all carry through. The differentiation from traditional web applications is primarily in the view part of MVC. Instead of returning HTML, they return data as JSON or XML, which client applications use to control their behavior or update the UI.
In this chapter, you’ll learn how to define controllers and actions and see how similar they are to the Razor Pages and controllers you already know. You’ll learn how to create an API model to return data and HTTP status codes in response to a request, in a way that client apps can understand.