diff --git a/.gitattributes b/.gitattributes index 9464a2ae19..74d4a26060 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3316,6 +3316,11 @@ packages/fcl-web/examples/jsonrpc/extdirect/extdemo.lpr svneol=native#text/plain packages/fcl-web/examples/jsonrpc/extdirect/extdirect.in svneol=native#text/plain packages/fcl-web/examples/jsonrpc/extdirect/wmext.lfm svneol=native#text/plain packages/fcl-web/examples/jsonrpc/extdirect/wmext.pp svneol=native#text/plain +packages/fcl-web/examples/restbridge/delphiclient/frmmain.dfm svneol=native#text/plain +packages/fcl-web/examples/restbridge/delphiclient/frmmain.pas svneol=native#text/plain +packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dpr svneol=native#text/plain +packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dproj svneol=native#text/plain +packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.res -text packages/fcl-web/examples/restbridge/demorestbridge.lpi svneol=native#text/plain packages/fcl-web/examples/restbridge/demorestbridge.pp svneol=native#text/plain packages/fcl-web/examples/routing-session/routingsessiondemo.lpi svneol=native#text/plain diff --git a/packages/fcl-web/examples/restbridge/delphiclient/frmmain.dfm b/packages/fcl-web/examples/restbridge/delphiclient/frmmain.dfm new file mode 100644 index 0000000000..3369b7537b --- /dev/null +++ b/packages/fcl-web/examples/restbridge/delphiclient/frmmain.dfm @@ -0,0 +1,129 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'SQLDB Rest client demo' + ClientHeight = 319 + ClientWidth = 527 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + DesignSize = ( + 527 + 319) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 16 + Top = 8 + Width = 158 + Height = 13 + Caption = 'SQLDBRest bridge resource URL:' + end + object Label2: TLabel + Left = 16 + Top = 54 + Width = 48 + Height = 13 + Caption = 'Username' + end + object LEPassword: TLabel + Left = 172 + Top = 54 + Width = 46 + Height = 13 + Caption = 'Password' + FocusControl = EPassword + end + object DBNavigator1: TDBNavigator + Left = 16 + Top = 81 + Width = 240 + Height = 25 + DataSource = DSRest + TabOrder = 0 + end + object DBGrid1: TDBGrid + Left = 16 + Top = 112 + Width = 498 + Height = 199 + Anchors = [akLeft, akTop, akRight, akBottom] + DataSource = DSRest + TabOrder = 1 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + end + object EURL: TEdit + Left = 16 + Top = 24 + Width = 417 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 2 + Text = 'http://192.168.0.98:3000/projects/' + end + object BFetch: TButton + Left = 439 + Top = 22 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Fetch data' + TabOrder = 3 + OnClick = BFetchClick + end + object EUserName: TEdit + Left = 70 + Top = 51 + Width = 96 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 4 + Text = 'Michael' + end + object EPassword: TEdit + Left = 224 + Top = 51 + Width = 134 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 5 + Text = 'secret' + end + object DSRest: TDataSource + DataSet = CDSRest + Left = 72 + Top = 128 + end + object CDSRest: TClientDataSet + Aggregates = <> + Params = <> + Left = 128 + Top = 128 + end + object RestClient: TIdHTTP + AllowCookies = True + ProxyParams.BasicAuthentication = False + ProxyParams.ProxyPort = 0 + Request.ContentLength = -1 + Request.ContentRangeEnd = -1 + Request.ContentRangeStart = -1 + Request.ContentRangeInstanceLength = -1 + Request.Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' + Request.BasicAuthentication = False + Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' + Request.Ranges.Units = 'bytes' + Request.Ranges = <> + HTTPOptions = [hoInProcessAuth, hoForceEncodeParams] + Left = 200 + Top = 128 + end +end diff --git a/packages/fcl-web/examples/restbridge/delphiclient/frmmain.pas b/packages/fcl-web/examples/restbridge/delphiclient/frmmain.pas new file mode 100644 index 0000000000..d38f62ad3c --- /dev/null +++ b/packages/fcl-web/examples/restbridge/delphiclient/frmmain.pas @@ -0,0 +1,66 @@ +unit frmmain; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, IPPeerClient, REST.Client, + REST.Authenticator.Basic, Data.Bind.Components, Data.Bind.ObjectScope, + Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, Vcl.DBCtrls, + Datasnap.DBClient, System.Net.URLClient, System.Net.HttpClient, + System.Net.HttpClientComponent, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdHTTP; + +type + TForm1 = class(TForm) + DSRest: TDataSource; + CDSRest: TClientDataSet; + DBNavigator1: TDBNavigator; + DBGrid1: TDBGrid; + EURL: TEdit; + BFetch: TButton; + Label1: TLabel; + Label2: TLabel; + EUserName: TEdit; + LEPassword: TLabel; + EPassword: TEdit; + RestClient: TIdHTTP; + procedure BFetchClick(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +procedure TForm1.BFetchClick(Sender: TObject); + +Var + URL : String; + Response : TMemoryStream; + +begin + URL:=EURL.Text; + if Pos('?',URL)=0 then + URL:=URL+'?' + else + URL:=URL+'&'; + URL:=URL+'fmt=cds'; + Response:=TMemoryStream.Create; + With RestClient.Request do + begin + UserName:=EUserName.Text; + Password:=EPassword.Text; + end; + RestClient.Get(URL,Response); + Response.Position:=0; + CDSRest.LoadFromStream(Response); +end; + +end. diff --git a/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dpr b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dpr new file mode 100644 index 0000000000..708c0bc486 --- /dev/null +++ b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dpr @@ -0,0 +1,14 @@ +program sqldbrestclient; + +uses + Vcl.Forms, + frmmain in 'frmmain.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dproj b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dproj new file mode 100644 index 0000000000..eff1ebf971 --- /dev/null +++ b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.dproj @@ -0,0 +1,560 @@ + + + {7D8C7C45-76FE-4285-B7B8-E1D0E65A6829} + 18.3 + VCL + sqldbrestclient.dpr + True + Debug + Win32 + 1 + Application + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + RESTComponents;FlexCel_Pdf;emsclientfiredac;DataSnapFireDAC;RemObjects_Server_Indy_D25;FireDACIBDriver;RemObjects_Indy_D25;xdata;emsclient;FireDACCommon;RESTBackendComponents;soapserver;CloudService;FireDACCommonDriver;inet;sparkle;tmsbcl;FireDAC;FlexCel_XlsAdapter;FireDACSqliteDriver;RemObjects_WebBroker_D25;soaprtl;FlexCel_Core;soapmidas;FlexCel_Render;aurelius;$(DCC_UsePackage) + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + sqldbrestclient + + + DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;FMX_FlexCel_Core;vclFireDAC;RemObjects_Server_Synapse_D25;FireDACADSDriver;frxe25;DBXMSSQLDriver;vacommpkgdXE11;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;tmsxlsdXE11;vcltouch;VCLTMSFNCCorePkgDXE11;vcldb;bindcompfmx;Intraweb;DBXOracleDriver;fsIBX25;inetdb;CEF4Delphi;TMSCryptoPkgDXE11;tiOPFGUI;FmxTeeUI;emsedge;DataAbstract_DBXDriver_Enterprise_D25;fmx;fmxdae;frxDB25;tmsdXE11;vclib;VCL_FlexCel_Components;frxTee25;tmsexdXE11;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;RemObjects_Synapse_D25;fsTee25;FMXTMSFNCCorePkgDXE11;DataSnapConnectors;VCLRESTComponents;FMXTMSFNCUIPackPkgDXE11;vclie;fs25;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;TMSWEBCorePkgDXE11;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;mbColorLibD101Berlin;VCLTMSFNCUIPackPkgDXE11;TMSWEBCorePkgLibDXE11;dsnapcon;madExcept_;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;madBasic_;TeeDB;vacommpkgdedXE11;fsADO25;emshosting;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;DataAbstract_DBXDriver_Pro_D25;frxADO25;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;madDisAsm_;DBXSybaseASADriver;tiOPFCore;CustomIPTransport;vcldsnap;CodeSiteExpressPkg;frx25;frxIntIO25;fsDB25;bindcomp;tmswizdXE11;DBXInformixDriver;IndyIPClient;kbmMemRunD102Pro;frxDBX25;bindcompvcl;SynEdit_R;DataAbstract_SQLiteDriver_D25;TeeUI;FMX_FlexCel_Components;dbxcds;VclSmp;VCL_FlexCel_Core;adortl;FireDACODBCDriver;DataAbstract_SpiderMonkeyScripting_D25;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;frxIBX25;TMSCryptoPkgDEDXE11;fmxase;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;FMX_FlexCel_Core;vclFireDAC;RemObjects_Server_Synapse_D25;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;VCLTMSFNCCorePkgDXE11;vcldb;bindcompfmx;Intraweb;DBXOracleDriver;inetdb;TMSCryptoPkgDXE11;FmxTeeUI;emsedge;DataAbstract_DBXDriver_Enterprise_D25;fmx;fmxdae;tmsdXE11;vclib;VCL_FlexCel_Components;tmsexdXE11;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;RemObjects_Synapse_D25;FMXTMSFNCCorePkgDXE11;DataSnapConnectors;VCLRESTComponents;FMXTMSFNCUIPackPkgDXE11;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;VCLTMSFNCUIPackPkgDXE11;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;emshosting;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;DataAbstract_DBXDriver_Pro_D25;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;DBXInformixDriver;IndyIPClient;bindcompvcl;SynEdit_R;DataAbstract_SQLiteDriver_D25;TeeUI;FMX_FlexCel_Components;dbxcds;VclSmp;VCL_FlexCel_Core;adortl;FireDACODBCDriver;DataAbstract_SpiderMonkeyScripting_D25;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage) + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + true + true + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + true + + + + MainSource + + +
Form1
+ dfm +
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Application + + + + sqldbrestclient.dpr + + + + + + sqldbrestclient.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 0 + + + + + classes + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + + + res\values + 1 + + + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\ + 1 + + + + + Contents + 1 + + + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + True + False + + + 12 + + + + +
diff --git a/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.res b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.res new file mode 100644 index 0000000000..85bfaf8aef Binary files /dev/null and b/packages/fcl-web/examples/restbridge/delphiclient/sqldbrestclient.res differ