How to do a REST webserver with Delphi as a backend for a big web application?

LaBracca picture LaBracca · May 4, 2011 · Viewed 18.3k times · Source

I read this question but was somehow not satisfied with the answers.

I also quickly read (as suggested in that question) the last chapter of Marco Cantù 2010 Handbook, from which I quote the following (I think I can quote such a short text):

I [Marco Cantù] do have a lot of investment in server side web and REST applications written in Delphi, and in the recent years I've started playing with and introducing at conferences a Delphi Web Application REST Framework119 (that is, DWARF), which at this time is still not publicly available... simply because it is too sketchy and unfinished to be published. I've seen other ongoing efforts to clone Rails in Delphi and offer other REST server architectures. I think that if you want to build a very large REST application architecture you should roll out your own technology or use one of these prototypical architectures.

Considering that I own Delphi XE Professional and DataSnap is not in there and I would like to consider to write large applications too according to the above comments it seems DataSnap is not an option.

Is there even a commercial solution for this? I don't want to consider "my own implementation of REST", I would like to create a webserver that uses some of my datamodules where I use the DAC I choose (Devart in this case).

Final note: my goal is to write the backend for a large web application, on the client I would like to use Ext JS 4.0, but I want to do all the client work in javascript, to take full advantage of EXT JS, so basically I need a webserver just for the data and tracking the state, not for serving webpages.

Answer

Arnaud Bouchez picture Arnaud Bouchez · May 4, 2011

To create your REST services, try our Open Source mORMot project. Now it is a well known and stabilized project, used world wide in production.

You can use any DAC with the current state of the framework by implementing a custom TSQLRestServerStatic class (similar to the TSQLRestServerStaticInMemory class, but calling your DAC): so you'll benefit for the ORM and the JSON RESTful architecture, together with the high-speed http.sys kernel-mode server.

The SQLite3 engine is NOT mandatory with our framework, even if it was designed to work better with it.