Use Core EF to create Instant Web API

Few clicks Rest API from your MS SQL database? Representational State Transfer (REST or RESTful) is a technical description of how the World Wide Web works. If to imagine that the Web is a device, and it could have an operating system, its architectural style would be RESTful. A RESTful API is a type of web server that enables user-operated or automated clients to access resources that model a system’s data and functions. A well-designed REST API entice developers to use the web service and is today a must-have feature.

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.

If you need to develop a REST API for a database-driven application, it’s almost irresistible not to use the database tables as REST resources, the four HTTP methods as CRUD operations, and then simply expose your thinly-wrapped database as a REST API. The problem is that one of the foundations of the REST architecture is that the client-facing representation of a resource must be independent of the underlying implementation, and implementations details should definitely not be leaked to the client, which is all too easy with the database-driven approach. It’s also important to ask yourself if an almost raw database is the best interface you can offer your API users? I mean there is already a near-perfect language for doing CRUD operations on database tables, it’s called SQL… And you probably have some business logic on top of those tables that your API users would appreciate not having to re-implement in their own code. So how do you move beyond this database-oriented thinking and closer to a more RESTful design for your API?

When I ran InstantWebAPI I get an error message about writing rights. How can this be fixed? If you created the stub solution as an administrator, then InstantWebAPI needs to be run as an administrator as well. We have a database with 80 tables. How many tables and views can this software generate the code for? This code was tested against databases with more than 100 tables. Web API project code gets generated pretty fast, but generating Unit Test code it might take a while. We recommend generating the code for a limited number of tables at a time. We have a database with multiple schema. Can the code be generated for all the schemas at the same time? No, this version of the software only allows generating the code for one schema at a time. Further customization can be added by sending a requests to Customer Service. See extra details on Instant database Web API.

About the Author