Immediate Rest API from your MS SQL database

Posted by Patrick Moreau on February 4, 2020 in Computers

Build and deploy your REST Web API in no time, no code required? Daniel Jacobson, Director of Engineering at Netflix, writes in his influential API strategy book that REST should be the default choice for any new API you write today, and Google Insights reveals that REST overtook SOAP as the most popular API style in 2008, and has increased its dominance ever since. This pervasiveness of REST is one of its key strengths; you are not only choosing a technology, you are also joining an enormous ecosystem of tools, best practices and developers.

SOAP’s standard HTTP protocol makes it easier for it to operate across firewalls and proxies without modifications to the SOAP protocol itself. But because it uses the complex XML format, it tends to be slower compared to middleware such as ICE and COBRA. Additionally, while it’s rarely needed, some use cases require greater transactional reliability than what can be achieved with HTTP (which limits REST in this capacity). If you need ACID-compliant transactions, SOAP is the way to go. In some cases, designing SOAP services can actually be less complex compared to REST. For web services that support complex operations, requiring content and context to be maintained, designing a SOAP service requires less coding in the application layer for transactions, security, trust, and other elements.

Begin with the API User in Mind: Bestselling author and architect Sam Newman’s great book on microservices provides a powerful alternative to the database-driven approach for designing REST web services. It’s useful even if you don’t plan to use microservices. Newman suggests that you divide your application into bounded contexts (similar to business areas). Each bounded context should provide an explicit interface for those who wish to interact with it. Implementation details of the bounded context that don’t need to be exposed to the outside world are hidden behind the interface. You should use this explicit interface as the basis for your API design. Start by asking yourself what business capabilities do the API user needs, rather than what data that should be shared. In other words, ask yourself what does this bounded context do? and then ask yourself what data does it need to do that?

Use Visual Studio 2017 to create an empty Web API project. Make sure you add unit tests to the solution. This empty solution will be used as a stub for the generated code. Step 2 Run InstantWebAPI application, select the stub Visual Studio solution file (.sln) created in first step. Using a database connection dialog create a connection string to your server. Application supports MS SQL server, Express or Azure. Once a connection is established to the database, select the tables or views for which Web API needs to created and start the code generator. Discover additional info at http://instantwebapi.com/.