The preceding interface exposes the two clients we had Refit generate for us. Its implementation is fairly straightforward as well: public class DefaultWebClient : IWebClient{ public DefaultWebClient(IBasketsClient baskets, IProductsClient catalog) { Baskets = baskets ??throw new ArgumentNullException(nameof(baskets)); Catalog = catalog ??throw new ArgumentNullException(nameof(catalog)); } public IBasketsClient Baskets { get; } public IProductsClient Catalog { get; }} The preceding default implementation composes itself through constructor injection, exposing the two typed clients.Of course, dependency injection means we must register services with the container. Let’s start with some configuration. To make the setup code parametrizable and allow the Docker container to override those…