Learn How to Design a professional REST API

In this blog series, I will explain how to design a professional REST API that will be ready for a production environment.  My goal is to provide you with the framework for creating and managing quality API solutions quickly and effortlessly. This will allow you to focus your time on solving actual business problems. I will get you there by meeting two objectives. First, there will be an API solution with all the features needed. Second, the framework will cover the ongoing management after the initial production release.

Objective: API Solution

Over the past years, I have worked on many web API projects using different languages and technologies. Since the release of ASP.NET Core, I have come across many great posts on a specific feature, such as logging or authentication. I realized that there is no one project template that ties together all these great examples. The Microsoft examples are great and simplistic, yet they aren't production ready. As I read those articles, I felt like I was recreating the wheel. I know others have created API's with many of these production level features. This is a huge pet peeve of mine, where IT departments and the industry as a whole don't apply their knowledge and skills to our own workflows. IT teams need to start seeing themselves as manufacturing teams and seek to automate everything they do. To achieve an end-to-end automated process I will start with a Visual Studio solution that is production ready. I will not be covering how to design and implement a multilayered or domain-driven design (DDD) architecture. I will focus on the API solution that would consume the domain logic, regardless of how you decide to architect it.

Objective: API Management Framework

Too often developers and product teams stop managing the API once they release to production. To compound this problem, most of the examples don't cover how to design a robust system. As a developer and software architect, you need to know about the network and the various devices and the roles they play in the solution. I will cover a series of guidelines to create an API management framework.  The end result will be an automated setup of the API solution and environments required to manage the complete lifecycle. The management framework and templates will use Microsoft Azure cloud computing services.

Future REST API Article Topics

Here is a preview of some of the topics I will cover in this series.

  • Configuration Data
  • Logging
  • Batch/Transactional Client Identification
  • Versioning
  • Consistent Data Formats
  • Security
  • Testing
  • Client-Side Integration
  • Documentation
  • Project Template NuGet package
  • DevOps
  • Manage Technical Debt
  • Optimizations