MARS-Curiosity Delphi REST Library » Developer.Team

MARS-Curiosity Delphi REST Library

MARS-Curiosity Delphi REST Library
MARS-Curiosity Delphi REST Library


Delphi REST Library

Pure REST approach, standard concepts in a familiar Delphi flavor (including a component based client library).

Known compatibility: Delphi versions from XE to 10.2 Tokyo
Some functionalities requires FireDAC

The main purpose of this library is to provide an easy but flexible way to implement a REST application server in Delphi and it also includes an easy to use client library to obtain the most from our beloved language and IDE, shortening the project’s time-to-market (a key element to achieve success nowadays).

I love Delphi and I use it everyday in my work as software developer and trainer here in Italy (I started >15 years ago with Delphi 2!). During 2014, while giving a training course to some experienced Delphi developers, I started (just for fun) to build a real-world example to showcase some of the language features that makes Delphi a modern language (attributes and RTTI, anonymous methods, dependency injection basics). From that starting point, I have been actively working on this project and today it is a powerful and handy library (to me and to some of my customers, at least) that I really want to share with any other Delphi developer in the world.

The challenges we are facing these days as software developers include being able to build software systems able to server clients built with a variety of technologies as never before.
Web applications, mobile applications, service integrations and desktop applications are now often geographically distributed and have to deal with intermittent and unstable network connectivity. The de-facto standard the software development industry has chosen to deal with the current scenario is without any doubt the REST approach (based on Roy Fielding work, dated 2000).

It is very easy to state that http and JSON are now so popular we can consider them a lingua franca (universal language) and that they act as building blocks for many software system (already in production and under construction these days).

If you are not convinced about this, just think about the Internet as we know today you will easily spot (almost in every website out there) the founding concepts of the MARS-Curiosity technology: stateless interaction (http), authorization and authentication techniques (JWT), data and content serialization (JSON, documents, images, streams, …), cross-platform and technology agnostic communications (build clients for every known platform out there).

I am aware of many other REST technologies out there (from Embarcadero and other open-source and commercial projects) and I really think that having multiple choices in these area is a very good and important fact for the Delphi community. I think there is room for all, given every one of these technologies has its own weakness and strengths and I hope you will give a try to my approach.

Any contribution will be appreciated and feel free to let me know what you think about this project or any other suggestion you may want to share. More blog posts will follow covering how to get started with the library and some examples.