BIZ

TMS XData

Delphi framework for multi-tier REST/JSON HTTP/HTTPS application server development and ORM remoting.


Release

v2.3 (January 9, 2017)

Version history
json

Feature overview

  • Server based on REST/JSON architecture style
  • Easily accessible from different client platforms like .NET, Java, JavaScript, since it's REST/JSON based
  • Uses standard POST, GET, PUT and DELETE HTTP methods for data request and data modification operations
  • Partial update of objects (PATCH)
  • Full-featured query mechanism
  • Multi-Model design makes it easy to create multiple servers with different mapping, types and service operations
  • Service Operations allow adding custom business logic to your server using interfaces and methods
  • Well-defined JSON representation of resources including entities, associations, streams and proxies
  • Support for streams (blobs)
  • Several databases supported in back end: SQL Server, MySQL, PostgreSQL, Oracle, Firebird, etc.. (through TMS Aurelius)
  • Design based on standard OData protocol
Based on TMS Sparkle HTTP/HTPS server architecture, which provides:
  • HTTP(s) server based on Windows http.sys stack
  • Support for HTTP Secure (HTTPS)
  • Kernel-mode caching and kernel-mode request queuing (less overhead in context switching)
  • Multiple applications/process can share (respond) the same port (at different addresses)
  • Secure Sockets Layer (SSL) support in kernel-mode

Feature details

TMS XData is a full-featured Delphi framework that allows you to create HTTP/HTTPS servers that exposes TMS Aurelius objects through REST/JSON.

Example of an Aurelius class mapped:
 
  [Entity, Automapping]
  TCustomer = class
  strict private
    FId: integer;
    FName: string;
    FTitle: string;
    FBirthday: TDateTime;
    FCountry: TCountry;
  public
    property Id: Integer read FId write FId;
    property Name: string read FName write FName;
    property Title: string read FTitle write FTitle;
    property Birthday: TDateTime read FDateTime write FDateTime;
    property Country: TCountry read FCountry write FCountry;
  end;
XData enables access via a simple HTTP GET:
  
GET /tms/xdata/Customer(3) HTTP/1.1
Host: server:2001
Example JSON representation of the customer object returned in the body of HTTP response:
  
{
  "$id": 1,
  "@xdata.type": "XData.Default.Customer",
  "Id": 3,
  "Name": "Maria Anders",
  "Title": "Sales Representative",
  "Birthday": "1980-05-20",
  "Country": null
}
Use a HTTP POST to create new objects, HTTP DELETE to remove objects, HTTP PUT or HTTP PATCH to update objects.

Example: Change the value of Title property of the customer resource:
 
PATCH /tms/xdata/Customer(1) HTTP/1.1
Host: server:2001
 
{ 
  "Title": "Marketing Manager" 
}
Easily perform queries on existing objects.

Example of retrieving customers with country name equal to "USA", ordered by customer's name:
 
GET /tms/xdata/Customer?$filter=Country/Name eq 'USA'&$orderby=Name&$top=10 HTTP/1.1
Host: server:2001
Server will return with a JSON array of objects containing all the filtered objects.

Query paging built-in to restrict the number of objects returned in each request.


Sample source Aurelius integrated full server-side logic using methods

Help

BIZ

for Delphi XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin (Prof/Enterprise/Architect)


View licensing FAQ

Single developer license


license for 1 developer € 495


order now
add to cart

Small
team


license for 2 developers € 745


order now
add to cart

Site
license


unlimited developers in the company € 1695


order now
add to cart


CreditCards and PayPal Accepted


This product is also available in the following bundle(s):

Bookmarks