Book Image

Hands-On RESTful Web Services with ASP.NET Core 3

By : Samuele Resca
Book Image

Hands-On RESTful Web Services with ASP.NET Core 3

By: Samuele Resca

Overview of this book

In recent times, web services have evolved to play a prominent role in web development. Applications are now designed to be compatible with any device and platform, and web services help us keep their logic and UI separate. Given its simplicity and effectiveness in creating web services, the RESTful approach has gained popularity, and this book will help you build RESTful web services using ASP.NET Core. This REST book begins by introducing you to the basics of the REST philosophy, where you'll study the different stages of designing and implementing enterprise-grade RESTful web services. You'll also gain a thorough understanding of ASP.NET Core's middleware approach and learn how to customize it. The book will later guide you through improving API resilience, securing your service, and applying different design patterns and techniques to achieve a scalable web service. In addition to this, you'll learn advanced techniques for caching, monitoring, and logging, along with implementing unit and integration testing strategies. In later chapters, you will deploy your REST web services on Azure and document APIs using Swagger and external tools such as Postman. By the end of this book, you will have learned how to design RESTful web services confidently using ASP.NET Core with a focus on code testability and maintainability.
Table of Contents (26 chapters)
Free Chapter
1
Section 1: Getting Started
3
Section 2: Overview of ASP.NET Core
10
Section 3: Building a Real-World RESTful API
19
Section 4: Advanced Concepts for Building Services

Implementing the domain model

As discussed in the Data transfer section in Chapter 5, Web Service Stack in ASP.NET Core, the domain model is the representation of the data handled by our service. Thinking about a catalog web service for a music store, the primary data we need to process includes the entities used by the API.

To guarantee reusability and loose coupling, we are going to define the domain model of the service in a separate project. First of all, let's create a new Catalog.Domain project inside the src folder by executing the following command:

dotnet new classlib -n Catalog.Domain -f netstandard2.1

The above command also specifies the netstandard2.1 version as target framework. Furthermore, after creating the Catalog.Domain project, we need to add it to our solution:

dotnet sln ../Catalog.API.sln add Catalog.Domain

The preceding instruction adds a reference...