DMVCFramework (for short) is a popular and powerful framework for WEB API in Delphi. Supports RESTful and JSON-RPC WEB APIs development.
Go to file
2015-06-08 10:51:08 +02:00
docs New facebook group cover 2014-07-03 14:46:30 +00:00
lib Added dmustache 2015-05-28 22:42:31 +02:00
redist 2013-11-12 00:23:50 +00:00
samples FIXED Samples 2015-05-28 15:44:02 +02:00
sources Added '@' as allowed character in URL parameters 2015-06-08 10:51:08 +02:00
unittests Updated to XE8 2015-04-10 10:29:40 +00:00
.gitmodules Added dmustache 2015-05-28 22:42:31 +02:00
build.bat + MERGE FROM "AUTH" FEATURE BRANCH 2015-04-01 15:01:23 +00:00
build.py + MERGE FROM "AUTH" FEATURE BRANCH 2015-04-01 15:01:23 +00:00
CHANGES.TXT 2015-04-01 15:05:18 +00:00
clean.bat 2013-10-29 14:18:22 +00:00
contributors.txt added Contributors 2015-01-16 09:37:23 +00:00
README.md Update README.md 2015-05-28 14:44:01 +02:00

#DMVCFramework features

  • RESTful (RMM Level 3) compliant
  • Can be used in load balanced environment using Redis (http://Redis.io) [dev]
  • Fancy URL with parameter mappings
  • Specialied renders to generate text, html, JSON
  • Powerful mapper to map json to objects and datasets to objects
  • Can be packaged as stand alone server, apache module (XE6, XE7, XE8) and ISAPI dll
  • Integrated RESTClient
  • Works with XE3, XE4, XE5, XE6, XE7 and XE8
  • Completely unit tested
  • There is a sample for each functionlities
  • There is a complete set of trainings about it, but the samples are included in the project
  • Experimental support for IOCP [dev]
  • Server side generated pages using eLua (Embedded Lua)
  • Specific trainings are available (ask me for a date and a place)
  • Messaging extension using STOMP (beta)
  • Community driven (Facebook group https://www.facebook.com/groups/delphimvcframework)
  • Simple and documented

DelphiMVCFramework contains also a lot of indipendent code that can be used in other kind of project.

These are the most notable:

  • Mapper (convert JSON in Object and back, ObjectList in JSONArray and back, DataSets in JSONArray or ObjectList and back)
  • LuaDelphiBinding (integrate Lua script into Delphi native code)
  • eLua (convert eLua into plain Lua executable script just like PHP or JSP)

##Samples and documentation DMVCFramework is provided with a lot of examples focused on specific functionality. All samples are in Samples folder

#Sample Controller Below a basic sample of a DMVCFramework controller with 2 action

unit UsersControllerU;
  
interface
  
uses 
  MVCFramework;
 
type 
   [MVCPath('/users')]
   TUsersController = class(TMVCController)
   public
    
    //The following action will be with a GET request like the following
    //http://myserver.com/users/3
    [MVCPath('/($id)')]
    [MVCProduce('application/json')]
    [MVCHTTPMethod([httpGET])]
    procedure GetUsers(CTX: TWebContext);

    //The following action will be with a POST or PUT request like the following
    //http://myserver.com/users/3
    //and in the request body there should be a serialized TUser
    [MVCPath('/($id)')]
    [MVCProduce('application/json')]
    [MVCHTTPMethod([httPOST, httpPUT])]
    procedure UpdateOrCreateUser(CTX: TWebContext);

  end;
 
implementation

uses
  MyTransactionScript; //contains actual data access code
  
{ TUsersController }
 
procedure TUsersController.GetUsers(CTX: TWebContext);
var
  User: TUser;
begin
  User := GetUserById(CTX.Request.Parameters['id'].ToInteger);
  Render(User);
end;

procedure TUsersController.UpdateOrCreateUser(CTX: TWebContext);
var
  User: TUser;
begin
  User := CTX.Request.BodyAs<TUser>;
  SaveUser(User);
  Render(User);
end;

  
end.

Feel free to ask questions on the "Delphi MVC Framework" facebook group (https://www.facebook.com/groups/delphimvcframework).

###Links http://www.danieleteti.it/2013/04/18/sneak-peek-to-simple-integration-between-dmvcframework-and-dorm/