In part 5, we created the service layer classes. These classes are the glue between the repository and controller architectural layers. We also looked at runtime type checking and using IAsyncEnumerable<T>. In this part, we’ll finish our rewrite of the Flying Dutchman Airlines service by implementing the controller layer classes. Other topics considered include ASP.NET middleware, custom model binding, and JSON serialization/deserialization.