vložil Radek Červinka
14. října 2021 20:47
Je to už neuvěřitelných 7 let, kdy jsem se zmínil o Delphi MVC frameworku a musím říct, že když jsem tehdy říkal, že mi přijde jako nejprogresivnější tak jsem nelhal.
Od té doby zrobustněl, bylo přidáno spousta funkcí (jako podpora swaggeru, JWT autentizaci, JSON-RPC 2.0, Cors a desítky dalších), nebudu to tady vyjmenovávat, ale přímo odkáži na github.com/danieleteti/delphimvcframework. Součástí archívu je spousta dem. Výhodou je taky kompletní zdrojový kód.
Cílem dnešního článku je ukázat jak jednoduše vytvoříte základní službu (celý REST full je podobně jednoduchý) odpovídající na vaše pořadavky.
Více...
vložil Radek Červinka
20. února 2014 23:04
Daniele Teti (pracuje myslím pro italské zastoupení EMBT) otevřel svůj MVC framework pro Delphi (primárně pro webové řešení) a musím uznat, že to má něco do sebe.
Domovská stránka: github.com/danieleteti/delphimvcframework.
Vlastnosti:
- RESTful (RMM Level 3) compliant
- Server side generované stránky za použití eLua (Embedded Lua)
- Messaging extension using STOMP (to nevím co je)
- možnost load balance via memcached (memcached.org)
- Fancy URL s mapováním parametrů
- Integravaný RESTClient
- pro XE4 and XE5 (testováno, ale mělo by fungovat v XE3 nebo XE2)
- Experimental podpora pro IOCP
Ukázka:
unit RenderSampleControllerU;
interface
uses
MVCFramework, MVCFramework.Commons, ObjectsMappers;
type
[MVCPath('/')]
TRenderSampleController = class(TMVCController)
public
[MVCHTTPMethod([httpGet])]
[MVCPath('/customers/($id).html')]
[MVCConsumes('text/html')]
[MVCProduces('text/html', 'UTF-8')]
procedure GetPerson_AsText(CTX: TWebContext);
[MVCHTTPMethod([httpGet])]
[MVCPath('/customers')]
[MVCProduces('application/json')]
procedure GetCustomers_AsDataSet(CTX: TWebContext);
[MVCHTTPMethod([httpGet])]
[MVCPath('/customers/($id)')]
[MVCProduces('application/json')]
procedure GetCustomerByID_AsTObject(CTX: TWebContext);
[MVCHTTPMethod([httpGet])]
[MVCPath('/customers.json')]
[MVCProduces('application/json')]
procedure GetPersonJSON(CTX: TWebContext);
end;
Více...