It is common practice to implement client libraries along with web services. Furthermore, it is the responsibility of a web service to provide a way to communicate with it. For that reason, we can represent the client's implementation using the following schema:
This allows us to publish the catalog service client library in an internal NuGet repository so that we can spread the client to other services. Moreover, the team that owns a specific service should know how it can be implemented and how to expose information in the right way. Let's start by creating two new classlib projects in the Catalog.API ...