Compare API Creator with Manually Building a REST Server

Use the following summary to compare building a traditional REST server for SQL with API Creator.

If you are using a framework that automates the persistence, caching, REST listeners, JSON mapping, etc, a moderate 100-table system requires in excess of 70,000 lines of code using a conventional approach. Live API Creator expresses this is 1,500 lines. This is a useful comparison, but it only begins to tell the story. At least as much time is spent in design as coding, which is largely eliminated from requirements capture. Automatic re-use affects maintenance since logic changes are automatically re-ordered and applied to all use cases.

 ActivityDescriptionAPI Creator  
 Hardware  Procure machines for DB and REST server, install OS, etc.Optional for a service or on-premises appliance
 Define DatabaseBuild database (define tables, columns, referential integrity).Required
 REST ListenerUse framework (for example, Jersey) to listen for REST requests, and supply REST logic.Automated
 SQL
Build SQL requests. 
 JSON
Map JSON/SQL data. 
 Security
Ensure reads/changes to data respect security requirements. 
 Authentication
Ensure User/Password is valid, determine authorized roles. 
 Authorization
Inject security into every read request to filter rows/columns on read (leveraging SQL filtering for to minimize DBMS trips), and protect data on update. 
 Multi-table Rest Resource
To reduce latency. 
 Design
Determine data to be returned. 
 Build
Build (including Security enforcement). 
 Logic
Supply database integrity logic for validations, derivations, and actions such as email or auditing. 
 Object Model
Build an object model for domain objects (for example, JPA) to provide accessors for attributes and related data. Each such object requires approximately 200 lines of code (20,000 for our 100-table system). 
 Persistence
Map object retrievals and updates to SQL, with caching for performance and consistency (provided by JPA, hand-coded with jdbc/odbc) 
 Logic
Use the JavaScript object model. 
 Logic Analysis
Identify Requirements for derivations, validations, actions 
 Logic Design
Identify Use Cases affected by Requirement (for example, OrderTotal definition affects inserting Line Items, deleting Line Items, changing Line Item Quantity, and Part Number). 
 Resource Mapping
Resource/object mapping (de-alias, de-project attributes, to re-use object model logic). 
 Code Object Behavior
Supply logic. Our experience suggests at least 500 lines of code per table (50,000 for our 100-table system). 
 Change Detection
Build logic to detect changes (for example, detect change in Line Item Quantity), including intricate multi-attribute changes (for example, change to LineItem Quantity and Part Number). 
 Change Propagation
Adjust Order Total, Customer Balance 
 Logic Ordering
Ensure the propagation respects logic dependencies (a greater concern during maintenance/iterations). 
 Data Explorer          
 AngularJS (HTML/CSS) layout of Grid/Scalar and child tabs    read metadata.