├── .gitignore
├── README.md
├── basic-auth
├── boss-lock.json
├── boss.json
├── samples.dpr
└── samples.dproj
├── compression
├── boss-lock.json
├── boss.json
├── samples.dpr
└── samples.dproj
├── docker
├── boss-lock.json
├── boss.json
├── docker-compose.yaml
├── samples.dpr
└── samples.dproj
├── handler-exception
├── boss-lock.json
├── boss.json
├── samples.dpr
└── samples.dproj
├── horse.pdf
├── iis
├── ISAPI.dpr
├── ISAPI.dproj
├── boss-lock.json
└── boss.json
├── jwt
├── auth
│ ├── boss-lock.json
│ ├── boss.json
│ ├── samples.dpr
│ └── samples.dproj
└── client
│ ├── boss-lock.json
│ ├── boss.json
│ ├── samples.dpr
│ └── samples.dproj
├── octet-stream
├── boss-lock.json
├── boss.json
├── horse.pdf
├── novo.pdf
├── samples.dpr
├── samples.dproj
└── samples.res
└── ping-pong
├── boss-lock.json
├── boss.json
├── samples.dpr
└── samples.dproj
/.gitignore:
--------------------------------------------------------------------------------
1 | # Uncomment these types if you want even more clean repository. But be careful.
2 | # It can make harm to an existing project source. Read explanations below.
3 | #
4 | # Resource files are binaries containing manifest, project icon and version info.
5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
6 | #*.res
7 | #
8 | # Type library file (binary). In old Delphi versions it should be stored.
9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
10 | #*.tlb
11 | #
12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7.
13 | # Uncomment this if you are not using diagrams or use newer Delphi version.
14 | #*.ddp
15 | #
16 | # Visual LiveBindings file. Added in Delphi XE2.
17 | # Uncomment this if you are not using LiveBindings Designer.
18 | #*.vlb
19 | #
20 | # Deployment Manager configuration file for your project. Added in Delphi XE2.
21 | # Uncomment this if it is not mobile development and you do not use remote debug feature.
22 | #*.deployproj
23 | #
24 | # C++ object files produced when C/C++ Output file generation is configured.
25 | # Uncomment this if you are not using external objects (zlib library for example).
26 | #*.obj
27 | #
28 |
29 | # Delphi compiler-generated binaries (safe to delete)
30 | *.exe
31 | *.dll
32 | *.bpl
33 | *.bpi
34 | *.dcp
35 | *.so
36 | *.apk
37 | *.drc
38 | *.map
39 | *.dres
40 | *.rsm
41 | *.tds
42 | *.dcu
43 | *.lib
44 | *.a
45 | *.o
46 | *.ocx
47 |
48 | # Delphi autogenerated files (duplicated info)
49 | *.cfg
50 | *.hpp
51 | *Resource.rc
52 |
53 | # Delphi local files (user-specific info)
54 | *.local
55 | *.identcache
56 | *.projdata
57 | *.tvsconfig
58 | *.dsk
59 |
60 | # Delphi history and backups
61 | __history/
62 | __recovery/
63 | *.~*
64 |
65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi)
66 | *.stat
67 |
68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss
69 | modules/
70 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CodeRage Brasil 2020
2 | Repositório com todos os códigos fontes da palestra **"Horse - Criando uma API escalável e minimalista"** apresentada no CodeRage Brasil 2020.
3 |
4 | ## Links
5 | * [**Horse**](https://github.com/HashLoad/horse) - Framework apresentado na palestra
6 | * [**Boss**](https://github.com/HashLoad/boss) - Gerenciador de dependências para projetos Delphi
7 | * [**Docker**](https://docs.docker.com/docker-for-windows/install/) - Instalador do Docker para Windows
8 | * [**Apresentação**](https://www.youtube.com/watch?v=qIjK-xV3OTE&t=1) - Vídeo da apresentação
9 | * [**Hashload**](https://github.com/HashLoad) - Comunidade Hashload (Responsável por projetos como o Horse, Ugar, Boss, etc)
10 | * [**Slack**](http://bit.ly/hashload-slack) - Canal do Slack
11 |
--------------------------------------------------------------------------------
/basic-auth/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-15T20:56:20.6237806-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/viniciussanchez/horse-basic-auth": {
14 | "name": "horse-basic-auth",
15 | "version": "v1.1.0",
16 | "hash": "084558e6ec4773844088c7e73163da33",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/basic-auth/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/horse": "^1.7.0",
10 | "github.com/viniciussanchez/horse-basic-auth": "^v1.1.0"
11 | }
12 | }
--------------------------------------------------------------------------------
/basic-auth/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.BasicAuthentication,
8 | System.SysUtils;
9 |
10 | {$R *.res}
11 |
12 | var
13 | App: THorse;
14 |
15 | begin
16 | App := THorse.Create(9000);
17 |
18 | App.Use(HorseBasicAuthentication(
19 | function(const AUsername, APassword: string): Boolean
20 | begin
21 | Result := AUsername.Equals('vinicius') and APassword.Equals('123');
22 | end));
23 |
24 | App.Get('/ping',
25 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
26 | begin
27 | Res.Send('pong');
28 | end);
29 |
30 | App.Start;
31 | end.
32 |
--------------------------------------------------------------------------------
/basic-auth/samples.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {A31DF25C-ACA6-4D73-BB84-923B1021FB57}
4 | 18.7
5 | None
6 | samples.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Console
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Base
59 | true
60 |
61 |
62 | true
63 | Base
64 | true
65 |
66 |
67 | true
68 | Cfg_1
69 | true
70 | true
71 |
72 |
73 | true
74 | Base
75 | true
76 |
77 |
78 | .\$(Platform)\$(Config)
79 | .\$(Platform)\$(Config)
80 | false
81 | false
82 | false
83 | false
84 | false
85 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
86 | true
87 | $(BDS)\bin\delphi_PROJECTICON.ico
88 | $(BDS)\bin\delphi_PROJECTICNS.icns
89 | $(Horse);modules\.dcp;modules\.dcu;modules;modules\horse\src;modules\horse-basic-auth\src;$(DCC_UnitSearchPath)
90 | VCL;$(DCC_Framework)
91 | samples
92 |
93 |
94 | DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
95 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar
96 |
97 |
98 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
99 |
100 |
101 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
102 |
103 |
104 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
105 |
106 |
107 | RESTComponents;emsclientfiredac;DataSnapFireDAC;FireDACADSDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;inetdb;emsedge;FireDACIBDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;soapserver;bindengine;CloudService;FireDACOracleDriver;FireDACMySQLDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndySystem;FireDACDb2Driver;FireDACInfxDriver;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;rtl;emsserverresource;DbxClientDriver;CustomIPTransport;bindcomp;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;dbrtl;IndyProtocols;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
108 |
109 |
110 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
111 |
112 |
113 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
114 |
115 |
116 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;horse_wizard;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
117 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
118 | Debug
119 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
120 | 1033
121 |
122 |
123 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
124 |
125 |
126 | DEBUG;$(DCC_Define)
127 | true
128 | false
129 | true
130 | true
131 | true
132 |
133 |
134 | false
135 |
136 |
137 | false
138 | RELEASE;$(DCC_Define)
139 | 0
140 | 0
141 |
142 |
143 |
144 | MainSource
145 |
146 |
147 | Cfg_2
148 | Base
149 |
150 |
151 | Base
152 |
153 |
154 | Cfg_1
155 | Base
156 |
157 |
158 |
159 | Delphi.Personality.12
160 | Console
161 |
162 |
163 |
164 | samples.dpr
165 |
166 |
167 |
168 |
169 |
170 | true
171 |
172 |
173 |
174 |
175 | true
176 |
177 |
178 |
179 |
180 | true
181 |
182 |
183 |
184 |
185 | samples.exe
186 | true
187 |
188 |
189 |
190 |
191 | 1
192 |
193 |
194 | 0
195 |
196 |
197 |
198 |
199 | classes
200 | 1
201 |
202 |
203 |
204 |
205 | res\xml
206 | 1
207 |
208 |
209 |
210 |
211 | library\lib\armeabi-v7a
212 | 1
213 |
214 |
215 |
216 |
217 | library\lib\armeabi
218 | 1
219 |
220 |
221 |
222 |
223 | library\lib\mips
224 | 1
225 |
226 |
227 |
228 |
229 | library\lib\armeabi-v7a
230 | 1
231 |
232 |
233 |
234 |
235 | res\drawable
236 | 1
237 |
238 |
239 |
240 |
241 | res\values
242 | 1
243 |
244 |
245 |
246 |
247 | res\values-v21
248 | 1
249 |
250 |
251 |
252 |
253 | res\values
254 | 1
255 |
256 |
257 |
258 |
259 | res\drawable
260 | 1
261 |
262 |
263 |
264 |
265 | res\drawable-xxhdpi
266 | 1
267 |
268 |
269 |
270 |
271 | res\drawable-ldpi
272 | 1
273 |
274 |
275 |
276 |
277 | res\drawable-mdpi
278 | 1
279 |
280 |
281 |
282 |
283 | res\drawable-hdpi
284 | 1
285 |
286 |
287 |
288 |
289 | res\drawable-xhdpi
290 | 1
291 |
292 |
293 |
294 |
295 | res\drawable-mdpi
296 | 1
297 |
298 |
299 |
300 |
301 | res\drawable-hdpi
302 | 1
303 |
304 |
305 |
306 |
307 | res\drawable-xhdpi
308 | 1
309 |
310 |
311 |
312 |
313 | res\drawable-xxhdpi
314 | 1
315 |
316 |
317 |
318 |
319 | res\drawable-xxxhdpi
320 | 1
321 |
322 |
323 |
324 |
325 | res\drawable-small
326 | 1
327 |
328 |
329 |
330 |
331 | res\drawable-normal
332 | 1
333 |
334 |
335 |
336 |
337 | res\drawable-large
338 | 1
339 |
340 |
341 |
342 |
343 | res\drawable-xlarge
344 | 1
345 |
346 |
347 |
348 |
349 | res\values
350 | 1
351 |
352 |
353 |
354 |
355 | 1
356 |
357 |
358 | 1
359 |
360 |
361 | 0
362 |
363 |
364 |
365 |
366 | 1
367 | .framework
368 |
369 |
370 | 1
371 | .framework
372 |
373 |
374 | 0
375 |
376 |
377 |
378 |
379 | 1
380 | .dylib
381 |
382 |
383 | 1
384 | .dylib
385 |
386 |
387 | 0
388 | .dll;.bpl
389 |
390 |
391 |
392 |
393 | 1
394 | .dylib
395 |
396 |
397 | 1
398 | .dylib
399 |
400 |
401 | 1
402 | .dylib
403 |
404 |
405 | 1
406 | .dylib
407 |
408 |
409 | 1
410 | .dylib
411 |
412 |
413 | 0
414 | .bpl
415 |
416 |
417 |
418 |
419 | 0
420 |
421 |
422 | 0
423 |
424 |
425 | 0
426 |
427 |
428 | 0
429 |
430 |
431 | 0
432 |
433 |
434 | 0
435 |
436 |
437 | 0
438 |
439 |
440 |
441 |
442 | 1
443 |
444 |
445 | 1
446 |
447 |
448 | 1
449 |
450 |
451 |
452 |
453 | 1
454 |
455 |
456 | 1
457 |
458 |
459 | 1
460 |
461 |
462 |
463 |
464 | 1
465 |
466 |
467 | 1
468 |
469 |
470 | 1
471 |
472 |
473 |
474 |
475 | 1
476 |
477 |
478 | 1
479 |
480 |
481 | 1
482 |
483 |
484 |
485 |
486 | 1
487 |
488 |
489 | 1
490 |
491 |
492 | 1
493 |
494 |
495 |
496 |
497 | 1
498 |
499 |
500 | 1
501 |
502 |
503 | 1
504 |
505 |
506 |
507 |
508 | 1
509 |
510 |
511 | 1
512 |
513 |
514 | 1
515 |
516 |
517 |
518 |
519 | 1
520 |
521 |
522 | 1
523 |
524 |
525 | 1
526 |
527 |
528 |
529 |
530 | 1
531 |
532 |
533 | 1
534 |
535 |
536 | 1
537 |
538 |
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 |
551 |
552 | 1
553 |
554 |
555 | 1
556 |
557 |
558 | 1
559 |
560 |
561 |
562 |
563 | 1
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | 1
575 |
576 |
577 | 1
578 |
579 |
580 | 1
581 |
582 |
583 |
584 |
585 | 1
586 |
587 |
588 | 1
589 |
590 |
591 | 1
592 |
593 |
594 |
595 |
596 | 1
597 |
598 |
599 | 1
600 |
601 |
602 | 1
603 |
604 |
605 |
606 |
607 | 1
608 |
609 |
610 | 1
611 |
612 |
613 | 1
614 |
615 |
616 |
617 |
618 | 1
619 |
620 |
621 | 1
622 |
623 |
624 | 1
625 |
626 |
627 |
628 |
629 | 1
630 |
631 |
632 | 1
633 |
634 |
635 | 1
636 |
637 |
638 |
639 |
640 | 1
641 |
642 |
643 | 1
644 |
645 |
646 | 1
647 |
648 |
649 |
650 |
651 | 1
652 |
653 |
654 | 1
655 |
656 |
657 | 1
658 |
659 |
660 |
661 |
662 | 1
663 |
664 |
665 | 1
666 |
667 |
668 | 1
669 |
670 |
671 |
672 |
673 | 1
674 |
675 |
676 | 1
677 |
678 |
679 | 1
680 |
681 |
682 |
683 |
684 | 1
685 |
686 |
687 | 1
688 |
689 |
690 | 1
691 |
692 |
693 |
694 |
695 | 1
696 |
697 |
698 | 1
699 |
700 |
701 | 1
702 |
703 |
704 |
705 |
706 | 1
707 |
708 |
709 |
710 |
711 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
712 | 1
713 |
714 |
715 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
716 | 1
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 | 1
725 |
726 |
727 | 1
728 |
729 |
730 | 1
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 | Contents\Resources
739 | 1
740 |
741 |
742 | Contents\Resources
743 | 1
744 |
745 |
746 |
747 |
748 | library\lib\armeabi-v7a
749 | 1
750 |
751 |
752 | 1
753 |
754 |
755 | 1
756 |
757 |
758 | 1
759 |
760 |
761 | 1
762 |
763 |
764 | 1
765 |
766 |
767 | 1
768 |
769 |
770 | 0
771 |
772 |
773 |
774 |
775 | 1
776 |
777 |
778 | 1
779 |
780 |
781 |
782 |
783 | Assets
784 | 1
785 |
786 |
787 | Assets
788 | 1
789 |
790 |
791 |
792 |
793 | Assets
794 | 1
795 |
796 |
797 | Assets
798 | 1
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 | False
813 | False
814 | False
815 | False
816 | False
817 | False
818 | False
819 | True
820 | False
821 |
822 |
823 | 12
824 |
825 |
826 |
827 |
828 |
829 |
--------------------------------------------------------------------------------
/compression/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-15T21:03:39.5333026-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/hashload/jhonson": {
14 | "name": "jhonson",
15 | "version": "1.0.3",
16 | "hash": "334dfe6b2e7daa4cb6af5b1bf88ec76e",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | },
21 | "github.com/viniciussanchez/horse-compression": {
22 | "name": "horse-compression",
23 | "version": "v1.1.0",
24 | "hash": "5c91a684f9b963fef3b3231e18593047",
25 | "artifacts": {},
26 | "failed": false,
27 | "changed": false
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/compression/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/horse": "^1.7.0",
10 | "github.com/HashLoad/jhonson": "^1.0.3",
11 | "github.com/viniciussanchez/horse-compression": "^v1.1.0"
12 | }
13 | }
--------------------------------------------------------------------------------
/compression/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.Jhonson,
8 | Horse.Compression,
9 | System.JSON;
10 |
11 | {$R *.res}
12 |
13 | var
14 | App: THorse;
15 |
16 | begin
17 | App := THorse.Create(9000);
18 |
19 | App.Use(Compression(1024)); // Must come before Jhonson middleware
20 | App.Use(Jhonson);
21 |
22 | App.Get('ping',
23 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
24 | var
25 | LPong: TJSONArray;
26 | begin
27 | LPong := TJSONArray.Create;
28 | for var I := 0 to 1000 do
29 | LPong.Add(TJSONObject.Create(TJSONPair.Create('ping', 'pong')));
30 | Res.Send(LPong);
31 | end);
32 |
33 | App.Start;
34 | end.
35 |
--------------------------------------------------------------------------------
/compression/samples.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {D623FD64-30E9-4410-B808-2224EF220D92}
4 | 18.7
5 | None
6 | samples.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Console
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Base
59 | true
60 |
61 |
62 | true
63 | Base
64 | true
65 |
66 |
67 | true
68 | Cfg_1
69 | true
70 | true
71 |
72 |
73 | true
74 | Base
75 | true
76 |
77 |
78 | .\$(Platform)\$(Config)
79 | .\$(Platform)\$(Config)
80 | false
81 | false
82 | false
83 | false
84 | false
85 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
86 | true
87 | $(BDS)\bin\delphi_PROJECTICON.ico
88 | $(BDS)\bin\delphi_PROJECTICNS.icns
89 | $(Horse);modules\.dcp;modules\.dcu;modules;modules\horse\src;modules\horse-compression\src;modules\jhonson\src;$(DCC_UnitSearchPath)
90 | VCL;$(DCC_Framework)
91 | samples
92 |
93 |
94 | DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
95 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar
96 |
97 |
98 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
99 |
100 |
101 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
102 |
103 |
104 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
105 |
106 |
107 | RESTComponents;emsclientfiredac;DataSnapFireDAC;FireDACADSDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;inetdb;emsedge;FireDACIBDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;soapserver;bindengine;CloudService;FireDACOracleDriver;FireDACMySQLDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndySystem;FireDACDb2Driver;FireDACInfxDriver;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;rtl;emsserverresource;DbxClientDriver;CustomIPTransport;bindcomp;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;dbrtl;IndyProtocols;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
108 |
109 |
110 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
111 |
112 |
113 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
114 |
115 |
116 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;horse_wizard;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
117 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
118 | Debug
119 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
120 | 1033
121 |
122 |
123 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
124 |
125 |
126 | DEBUG;$(DCC_Define)
127 | true
128 | false
129 | true
130 | true
131 | true
132 |
133 |
134 | false
135 |
136 |
137 | false
138 | RELEASE;$(DCC_Define)
139 | 0
140 | 0
141 |
142 |
143 |
144 | MainSource
145 |
146 |
147 | Cfg_2
148 | Base
149 |
150 |
151 | Base
152 |
153 |
154 | Cfg_1
155 | Base
156 |
157 |
158 |
159 | Delphi.Personality.12
160 | Console
161 |
162 |
163 |
164 | samples.dpr
165 |
166 |
167 |
168 |
169 |
170 | true
171 |
172 |
173 |
174 |
175 | true
176 |
177 |
178 |
179 |
180 | true
181 |
182 |
183 |
184 |
185 | samples.exe
186 | true
187 |
188 |
189 |
190 |
191 | 1
192 |
193 |
194 | 0
195 |
196 |
197 |
198 |
199 | classes
200 | 1
201 |
202 |
203 |
204 |
205 | res\xml
206 | 1
207 |
208 |
209 |
210 |
211 | library\lib\armeabi-v7a
212 | 1
213 |
214 |
215 |
216 |
217 | library\lib\armeabi
218 | 1
219 |
220 |
221 |
222 |
223 | library\lib\mips
224 | 1
225 |
226 |
227 |
228 |
229 | library\lib\armeabi-v7a
230 | 1
231 |
232 |
233 |
234 |
235 | res\drawable
236 | 1
237 |
238 |
239 |
240 |
241 | res\values
242 | 1
243 |
244 |
245 |
246 |
247 | res\values-v21
248 | 1
249 |
250 |
251 |
252 |
253 | res\values
254 | 1
255 |
256 |
257 |
258 |
259 | res\drawable
260 | 1
261 |
262 |
263 |
264 |
265 | res\drawable-xxhdpi
266 | 1
267 |
268 |
269 |
270 |
271 | res\drawable-ldpi
272 | 1
273 |
274 |
275 |
276 |
277 | res\drawable-mdpi
278 | 1
279 |
280 |
281 |
282 |
283 | res\drawable-hdpi
284 | 1
285 |
286 |
287 |
288 |
289 | res\drawable-xhdpi
290 | 1
291 |
292 |
293 |
294 |
295 | res\drawable-mdpi
296 | 1
297 |
298 |
299 |
300 |
301 | res\drawable-hdpi
302 | 1
303 |
304 |
305 |
306 |
307 | res\drawable-xhdpi
308 | 1
309 |
310 |
311 |
312 |
313 | res\drawable-xxhdpi
314 | 1
315 |
316 |
317 |
318 |
319 | res\drawable-xxxhdpi
320 | 1
321 |
322 |
323 |
324 |
325 | res\drawable-small
326 | 1
327 |
328 |
329 |
330 |
331 | res\drawable-normal
332 | 1
333 |
334 |
335 |
336 |
337 | res\drawable-large
338 | 1
339 |
340 |
341 |
342 |
343 | res\drawable-xlarge
344 | 1
345 |
346 |
347 |
348 |
349 | res\values
350 | 1
351 |
352 |
353 |
354 |
355 | 1
356 |
357 |
358 | 1
359 |
360 |
361 | 0
362 |
363 |
364 |
365 |
366 | 1
367 | .framework
368 |
369 |
370 | 1
371 | .framework
372 |
373 |
374 | 0
375 |
376 |
377 |
378 |
379 | 1
380 | .dylib
381 |
382 |
383 | 1
384 | .dylib
385 |
386 |
387 | 0
388 | .dll;.bpl
389 |
390 |
391 |
392 |
393 | 1
394 | .dylib
395 |
396 |
397 | 1
398 | .dylib
399 |
400 |
401 | 1
402 | .dylib
403 |
404 |
405 | 1
406 | .dylib
407 |
408 |
409 | 1
410 | .dylib
411 |
412 |
413 | 0
414 | .bpl
415 |
416 |
417 |
418 |
419 | 0
420 |
421 |
422 | 0
423 |
424 |
425 | 0
426 |
427 |
428 | 0
429 |
430 |
431 | 0
432 |
433 |
434 | 0
435 |
436 |
437 | 0
438 |
439 |
440 |
441 |
442 | 1
443 |
444 |
445 | 1
446 |
447 |
448 | 1
449 |
450 |
451 |
452 |
453 | 1
454 |
455 |
456 | 1
457 |
458 |
459 | 1
460 |
461 |
462 |
463 |
464 | 1
465 |
466 |
467 | 1
468 |
469 |
470 | 1
471 |
472 |
473 |
474 |
475 | 1
476 |
477 |
478 | 1
479 |
480 |
481 | 1
482 |
483 |
484 |
485 |
486 | 1
487 |
488 |
489 | 1
490 |
491 |
492 | 1
493 |
494 |
495 |
496 |
497 | 1
498 |
499 |
500 | 1
501 |
502 |
503 | 1
504 |
505 |
506 |
507 |
508 | 1
509 |
510 |
511 | 1
512 |
513 |
514 | 1
515 |
516 |
517 |
518 |
519 | 1
520 |
521 |
522 | 1
523 |
524 |
525 | 1
526 |
527 |
528 |
529 |
530 | 1
531 |
532 |
533 | 1
534 |
535 |
536 | 1
537 |
538 |
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 |
551 |
552 | 1
553 |
554 |
555 | 1
556 |
557 |
558 | 1
559 |
560 |
561 |
562 |
563 | 1
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | 1
575 |
576 |
577 | 1
578 |
579 |
580 | 1
581 |
582 |
583 |
584 |
585 | 1
586 |
587 |
588 | 1
589 |
590 |
591 | 1
592 |
593 |
594 |
595 |
596 | 1
597 |
598 |
599 | 1
600 |
601 |
602 | 1
603 |
604 |
605 |
606 |
607 | 1
608 |
609 |
610 | 1
611 |
612 |
613 | 1
614 |
615 |
616 |
617 |
618 | 1
619 |
620 |
621 | 1
622 |
623 |
624 | 1
625 |
626 |
627 |
628 |
629 | 1
630 |
631 |
632 | 1
633 |
634 |
635 | 1
636 |
637 |
638 |
639 |
640 | 1
641 |
642 |
643 | 1
644 |
645 |
646 | 1
647 |
648 |
649 |
650 |
651 | 1
652 |
653 |
654 | 1
655 |
656 |
657 | 1
658 |
659 |
660 |
661 |
662 | 1
663 |
664 |
665 | 1
666 |
667 |
668 | 1
669 |
670 |
671 |
672 |
673 | 1
674 |
675 |
676 | 1
677 |
678 |
679 | 1
680 |
681 |
682 |
683 |
684 | 1
685 |
686 |
687 | 1
688 |
689 |
690 | 1
691 |
692 |
693 |
694 |
695 | 1
696 |
697 |
698 | 1
699 |
700 |
701 | 1
702 |
703 |
704 |
705 |
706 | 1
707 |
708 |
709 |
710 |
711 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
712 | 1
713 |
714 |
715 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
716 | 1
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 | 1
725 |
726 |
727 | 1
728 |
729 |
730 | 1
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 | Contents\Resources
739 | 1
740 |
741 |
742 | Contents\Resources
743 | 1
744 |
745 |
746 |
747 |
748 | library\lib\armeabi-v7a
749 | 1
750 |
751 |
752 | 1
753 |
754 |
755 | 1
756 |
757 |
758 | 1
759 |
760 |
761 | 1
762 |
763 |
764 | 1
765 |
766 |
767 | 1
768 |
769 |
770 | 0
771 |
772 |
773 |
774 |
775 | 1
776 |
777 |
778 | 1
779 |
780 |
781 |
782 |
783 | Assets
784 | 1
785 |
786 |
787 | Assets
788 | 1
789 |
790 |
791 |
792 |
793 | Assets
794 | 1
795 |
796 |
797 | Assets
798 | 1
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 | False
813 | False
814 | False
815 | False
816 | False
817 | False
818 | False
819 | True
820 | False
821 |
822 |
823 | 12
824 |
825 |
826 |
827 |
828 |
829 |
--------------------------------------------------------------------------------
/docker/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-14T21:38:18.9623297-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/docker/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/horse": "^1.7.0"
10 | }
11 | }
--------------------------------------------------------------------------------
/docker/docker-compose.yaml:
--------------------------------------------------------------------------------
1 | version: '2.1'
2 |
3 | services:
4 | horse:
5 | image: hashload/delphi-dev:10.3.2-rio
6 | privileged: true
7 | tty: true
8 | ports:
9 | - '9000:9000'
10 | - '64211:64211'
11 |
12 | mongo:
13 | image: mongo
14 | ports:
15 | - '27017:27017'
--------------------------------------------------------------------------------
/docker/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse;
7 |
8 | var
9 | App: THorse;
10 |
11 | begin
12 | App := THorse.Create(9000);
13 |
14 | App.Get('/ping',
15 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
16 | begin
17 | Res.Send('pong');
18 | end);
19 |
20 | App.Start;
21 | end.
22 |
--------------------------------------------------------------------------------
/handler-exception/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-15T22:07:14.0506259-03:00",
4 | "installedModules": {
5 | "github.com/hashload/handle-exception": {
6 | "name": "handle-exception",
7 | "version": "0.1.2",
8 | "hash": "8140d3e64a725376e986d90f419cacc8",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/hashload/horse": {
14 | "name": "horse",
15 | "version": "1.7.0",
16 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | },
21 | "github.com/hashload/jhonson": {
22 | "name": "jhonson",
23 | "version": "1.0.3",
24 | "hash": "334dfe6b2e7daa4cb6af5b1bf88ec76e",
25 | "artifacts": {},
26 | "failed": false,
27 | "changed": false
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/handler-exception/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/handle-exception": "^0.1.2",
10 | "github.com/HashLoad/horse": "^1.7.0",
11 | "github.com/hashload/jhonson": "^1.0.3"
12 | }
13 | }
--------------------------------------------------------------------------------
/handler-exception/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.Jhonson,
8 | Horse.HandleException,
9 | System.SysUtils;
10 |
11 | {$R *.res}
12 |
13 | var
14 | App: THorse;
15 |
16 | begin
17 | App := THorse.Create(9000);
18 |
19 | App.Use(Jhonson);
20 | App.Use(HandleException);
21 |
22 | App.Get('ping',
23 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
24 | begin
25 | raise Exception.Create('Meu erro personalizado!');
26 | end);
27 |
28 | App.Start;
29 | end.
30 |
--------------------------------------------------------------------------------
/handler-exception/samples.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {B0770279-97A0-4807-914E-5A19D3611639}
4 | 18.7
5 | None
6 | samples.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Console
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Base
59 | true
60 |
61 |
62 | true
63 | Base
64 | true
65 |
66 |
67 | true
68 | Cfg_1
69 | true
70 | true
71 |
72 |
73 | true
74 | Base
75 | true
76 |
77 |
78 | .\$(Platform)\$(Config)
79 | .\$(Platform)\$(Config)
80 | false
81 | false
82 | false
83 | false
84 | false
85 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
86 | true
87 | $(BDS)\bin\delphi_PROJECTICON.ico
88 | $(BDS)\bin\delphi_PROJECTICNS.icns
89 | $(Horse);modules\.dcp;modules\.dcu;modules;modules\handle-exception\Src;modules\horse\src;modules\jhonson\src;$(DCC_UnitSearchPath)
90 | VCL;$(DCC_Framework)
91 | samples
92 |
93 |
94 | DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
95 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar
96 |
97 |
98 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
99 |
100 |
101 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
102 |
103 |
104 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
105 |
106 |
107 | RESTComponents;emsclientfiredac;DataSnapFireDAC;FireDACADSDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;inetdb;emsedge;FireDACIBDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;soapserver;bindengine;CloudService;FireDACOracleDriver;FireDACMySQLDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndySystem;FireDACDb2Driver;FireDACInfxDriver;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;rtl;emsserverresource;DbxClientDriver;CustomIPTransport;bindcomp;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;dbrtl;IndyProtocols;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
108 |
109 |
110 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
111 |
112 |
113 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
114 |
115 |
116 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;horse_wizard;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
117 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
118 | Debug
119 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
120 | 1033
121 |
122 |
123 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
124 |
125 |
126 | DEBUG;$(DCC_Define)
127 | true
128 | false
129 | true
130 | true
131 | true
132 |
133 |
134 | false
135 |
136 |
137 | false
138 | RELEASE;$(DCC_Define)
139 | 0
140 | 0
141 |
142 |
143 |
144 | MainSource
145 |
146 |
147 | Cfg_2
148 | Base
149 |
150 |
151 | Base
152 |
153 |
154 | Cfg_1
155 | Base
156 |
157 |
158 |
159 | Delphi.Personality.12
160 | Console
161 |
162 |
163 |
164 | samples.dpr
165 |
166 |
167 |
168 |
169 |
170 | true
171 |
172 |
173 |
174 |
175 | true
176 |
177 |
178 |
179 |
180 | true
181 |
182 |
183 |
184 |
185 | samples.exe
186 | true
187 |
188 |
189 |
190 |
191 | 1
192 |
193 |
194 | 0
195 |
196 |
197 |
198 |
199 | classes
200 | 1
201 |
202 |
203 |
204 |
205 | res\xml
206 | 1
207 |
208 |
209 |
210 |
211 | library\lib\armeabi-v7a
212 | 1
213 |
214 |
215 |
216 |
217 | library\lib\armeabi
218 | 1
219 |
220 |
221 |
222 |
223 | library\lib\mips
224 | 1
225 |
226 |
227 |
228 |
229 | library\lib\armeabi-v7a
230 | 1
231 |
232 |
233 |
234 |
235 | res\drawable
236 | 1
237 |
238 |
239 |
240 |
241 | res\values
242 | 1
243 |
244 |
245 |
246 |
247 | res\values-v21
248 | 1
249 |
250 |
251 |
252 |
253 | res\values
254 | 1
255 |
256 |
257 |
258 |
259 | res\drawable
260 | 1
261 |
262 |
263 |
264 |
265 | res\drawable-xxhdpi
266 | 1
267 |
268 |
269 |
270 |
271 | res\drawable-ldpi
272 | 1
273 |
274 |
275 |
276 |
277 | res\drawable-mdpi
278 | 1
279 |
280 |
281 |
282 |
283 | res\drawable-hdpi
284 | 1
285 |
286 |
287 |
288 |
289 | res\drawable-xhdpi
290 | 1
291 |
292 |
293 |
294 |
295 | res\drawable-mdpi
296 | 1
297 |
298 |
299 |
300 |
301 | res\drawable-hdpi
302 | 1
303 |
304 |
305 |
306 |
307 | res\drawable-xhdpi
308 | 1
309 |
310 |
311 |
312 |
313 | res\drawable-xxhdpi
314 | 1
315 |
316 |
317 |
318 |
319 | res\drawable-xxxhdpi
320 | 1
321 |
322 |
323 |
324 |
325 | res\drawable-small
326 | 1
327 |
328 |
329 |
330 |
331 | res\drawable-normal
332 | 1
333 |
334 |
335 |
336 |
337 | res\drawable-large
338 | 1
339 |
340 |
341 |
342 |
343 | res\drawable-xlarge
344 | 1
345 |
346 |
347 |
348 |
349 | res\values
350 | 1
351 |
352 |
353 |
354 |
355 | 1
356 |
357 |
358 | 1
359 |
360 |
361 | 0
362 |
363 |
364 |
365 |
366 | 1
367 | .framework
368 |
369 |
370 | 1
371 | .framework
372 |
373 |
374 | 0
375 |
376 |
377 |
378 |
379 | 1
380 | .dylib
381 |
382 |
383 | 1
384 | .dylib
385 |
386 |
387 | 0
388 | .dll;.bpl
389 |
390 |
391 |
392 |
393 | 1
394 | .dylib
395 |
396 |
397 | 1
398 | .dylib
399 |
400 |
401 | 1
402 | .dylib
403 |
404 |
405 | 1
406 | .dylib
407 |
408 |
409 | 1
410 | .dylib
411 |
412 |
413 | 0
414 | .bpl
415 |
416 |
417 |
418 |
419 | 0
420 |
421 |
422 | 0
423 |
424 |
425 | 0
426 |
427 |
428 | 0
429 |
430 |
431 | 0
432 |
433 |
434 | 0
435 |
436 |
437 | 0
438 |
439 |
440 |
441 |
442 | 1
443 |
444 |
445 | 1
446 |
447 |
448 | 1
449 |
450 |
451 |
452 |
453 | 1
454 |
455 |
456 | 1
457 |
458 |
459 | 1
460 |
461 |
462 |
463 |
464 | 1
465 |
466 |
467 | 1
468 |
469 |
470 | 1
471 |
472 |
473 |
474 |
475 | 1
476 |
477 |
478 | 1
479 |
480 |
481 | 1
482 |
483 |
484 |
485 |
486 | 1
487 |
488 |
489 | 1
490 |
491 |
492 | 1
493 |
494 |
495 |
496 |
497 | 1
498 |
499 |
500 | 1
501 |
502 |
503 | 1
504 |
505 |
506 |
507 |
508 | 1
509 |
510 |
511 | 1
512 |
513 |
514 | 1
515 |
516 |
517 |
518 |
519 | 1
520 |
521 |
522 | 1
523 |
524 |
525 | 1
526 |
527 |
528 |
529 |
530 | 1
531 |
532 |
533 | 1
534 |
535 |
536 | 1
537 |
538 |
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 |
551 |
552 | 1
553 |
554 |
555 | 1
556 |
557 |
558 | 1
559 |
560 |
561 |
562 |
563 | 1
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | 1
575 |
576 |
577 | 1
578 |
579 |
580 | 1
581 |
582 |
583 |
584 |
585 | 1
586 |
587 |
588 | 1
589 |
590 |
591 | 1
592 |
593 |
594 |
595 |
596 | 1
597 |
598 |
599 | 1
600 |
601 |
602 | 1
603 |
604 |
605 |
606 |
607 | 1
608 |
609 |
610 | 1
611 |
612 |
613 | 1
614 |
615 |
616 |
617 |
618 | 1
619 |
620 |
621 | 1
622 |
623 |
624 | 1
625 |
626 |
627 |
628 |
629 | 1
630 |
631 |
632 | 1
633 |
634 |
635 | 1
636 |
637 |
638 |
639 |
640 | 1
641 |
642 |
643 | 1
644 |
645 |
646 | 1
647 |
648 |
649 |
650 |
651 | 1
652 |
653 |
654 | 1
655 |
656 |
657 | 1
658 |
659 |
660 |
661 |
662 | 1
663 |
664 |
665 | 1
666 |
667 |
668 | 1
669 |
670 |
671 |
672 |
673 | 1
674 |
675 |
676 | 1
677 |
678 |
679 | 1
680 |
681 |
682 |
683 |
684 | 1
685 |
686 |
687 | 1
688 |
689 |
690 | 1
691 |
692 |
693 |
694 |
695 | 1
696 |
697 |
698 | 1
699 |
700 |
701 | 1
702 |
703 |
704 |
705 |
706 | 1
707 |
708 |
709 |
710 |
711 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
712 | 1
713 |
714 |
715 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
716 | 1
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 | 1
725 |
726 |
727 | 1
728 |
729 |
730 | 1
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 | Contents\Resources
739 | 1
740 |
741 |
742 | Contents\Resources
743 | 1
744 |
745 |
746 |
747 |
748 | library\lib\armeabi-v7a
749 | 1
750 |
751 |
752 | 1
753 |
754 |
755 | 1
756 |
757 |
758 | 1
759 |
760 |
761 | 1
762 |
763 |
764 | 1
765 |
766 |
767 | 1
768 |
769 |
770 | 0
771 |
772 |
773 |
774 |
775 | 1
776 |
777 |
778 | 1
779 |
780 |
781 |
782 |
783 | Assets
784 | 1
785 |
786 |
787 | Assets
788 | 1
789 |
790 |
791 |
792 |
793 | Assets
794 | 1
795 |
796 |
797 | Assets
798 | 1
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 | False
813 | False
814 | False
815 | False
816 | False
817 | False
818 | False
819 | True
820 | False
821 |
822 |
823 | 12
824 |
825 |
826 |
827 |
828 |
829 |
--------------------------------------------------------------------------------
/horse.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/viniciussanchez/coderage/9f12b6f77252b44be4963adf0e3de108c579e86c/horse.pdf
--------------------------------------------------------------------------------
/iis/ISAPI.dpr:
--------------------------------------------------------------------------------
1 | library ISAPI;
2 |
3 | uses
4 | Horse.ISAPI,
5 | Web.Win.ISAPIApp;
6 |
7 | {$R *.res}
8 |
9 | exports
10 | GetExtensionVersion,
11 | HttpExtensionProc,
12 | TerminateExtension;
13 |
14 | var
15 | App: THorse;
16 |
17 | begin
18 | App := THorse.Create;
19 |
20 | App.Get('/ping',
21 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
22 | begin
23 | Res.Send('pong');
24 | end);
25 |
26 | App.Start;
27 | end.
28 |
--------------------------------------------------------------------------------
/iis/ISAPI.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {C88A5E06-1B89-4A28-AE2D-20DE2B5A13D5}
4 | 18.7
5 | None
6 | ISAPI.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Library
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Cfg_1
34 | true
35 | true
36 |
37 |
38 | true
39 | Base
40 | true
41 |
42 |
43 | .\$(Platform)\$(Config)
44 | .\$(Platform)\$(Config)
45 | false
46 | false
47 | false
48 | false
49 | false
50 | true
51 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
52 | $(BDS)\bin\delphi_PROJECTICON.ico
53 | $(BDS)\bin\delphi_PROJECTICNS.icns
54 | ISAPI
55 | modules\.dcp;modules\.dcu;modules;modules\horse\src;$(DCC_UnitSearchPath)
56 |
57 |
58 | DBXSqliteDriver;dxFlowChartRS26;dxPSdxMapControlLnkRS26;vclactnband;dxBarRS26;vclFireDAC;dxFireDACEMFRS26;tethering;dxSpreadSheetInplaceRichEditRS26;FireDACADSDriver;dxSkinVisualStudio2013BlueRS26;dxRichEditCoreRS26;dxPSdxSpreadSheetLnkRS26;dxSkinSharpPlusRS26;vcltouch;vcldb;svn;dxSkinFoggyRS26;dxSkinVisualStudio2013DarkRS26;dxSkinOffice2013DarkGrayRS26;dxGDIPlusRS26;dxAuthorizationAgentsRS26;dxPSdxFCLnkRS26;dxPSLnksRS26;dxPsPrVwAdvRS26;cxGridRS26;dxPDFViewerRS26;dxSkinSpringTimeRS26;vclx;dxPScxTLLnkRS26;dxSkinOffice2010BlueRS26;RESTBackendComponents;dxSkinOffice2016DarkRS26;uSynEdit_R2022;VCLRESTComponents;dxSkinMoneyTwinsRS26;dxSkinOffice2016ColorfulRS26;dxSkinValentineRS26;dxSkinHighContrastRS26;vclie;bindengine;CloudService;dxmdsRS26;FireDACMySQLDriver;dxdborRS26;dxSkinOffice2013WhiteRS26;dxFireDACServerModeRS26;bindcompdbx;IndyIPServer;cxPivotGridRS26;IndySystem;dxSkinDarkRoomRS26;cxTreeListdxBarPopupMenuRS26;dsnapcon;cxTreeListRS26;dxPScxPivotGridLnkRS26;cxSchedulerRibbonStyleEventEditorRS26;dxPSCoreRS26;FireDACMSAccDriver;fmxFireDAC;dxSpreadSheetRS26;vclimg;dxBarExtItemsRS26;dxPSdxGaugeControlLnkRS26;dxSkinLondonLiquidSkyRS26;dxSkinSevenRS26;dxdbtrRS26;dxRichEditControlCoreRS26;soaprtl;DbxCommonDriver;dxFlowChartAdvancedCustomizeFormRS26;dxSkinLiquidSkyRS26;dxDockingRS26;xmlrtl;soapmidas;fmxobj;cxLibraryRS26;rtl;DbxClientDriver;cxDataRS26;dxPScxSchedulerLnkRS26;dxSpreadSheetConditionalFormattingDialogsRS26;appanalytics;dxRibbonCustomizationFormRS26;cxSchedulerGridRS26;IndyIPClient;bindcompvcl;dxSkinVisualStudio2013LightRS26;dxADOEMFRS26;VclSmp;dxRibbonRS26;dxPScxCommonRS26;dxRichEditDocumentModelRS26;dxPScxGridLnkRS26;dxSkinDevExpressDarkStyleRS26;dxSpreadSheetCoreRS26;RESTComponents;dxSkinGlassOceansRS26;DBXInterBaseDriver;dxPScxExtCommonRS26;dxSkinPumpkinRS26;dxSkinXmas2008BlueRS26;svnui;dxSkinOffice2007SilverRS26;cxPageControlRS26;dxSkinTheBezierRS26;dxSkinDevExpressStyleRS26;dxRichEditControlRS26;dxGaugeControlRS26;dxorgcRS26;dxPScxVGridLnkRS26;bindcompfmx;dxSkinOffice2007PinkRS26;inetdb;dxSkinOffice2007BlueRS26;dxSkinStardustRS26;dxBarDBNavRS26;dxDBXServerModeRS26;dxSkinTheAsphaltWorldRS26;dxSkinSilverRS26;dxLayoutControlRS26;dxSkinBlueprintRS26;fmx;FireDACIBDriver;fmxdae;dxServerModeRS26;dxWizardControlRS26;dxSkiniMaginaryRS26;dxTabbedMDIRS26;dxEMFRS26;dbexpress;IndyCore;dxComnRS26;dsnap;dxSkinSharpRS26;uniGUI26m;uniGUI26Chart;FireDACCommon;cxSchedulerTreeBrowserRS26;dxADOServerModeRS26;soapserver;dxSkinOffice2007BlackRS26;cxPivotGridOLAPRS26;cxVerticalGridRS26;dxtrmdRS26;DBXMySQLDriver;cxEditorsRS26;cxSchedulerRS26;cxSchedulerWebServiceStorageRS26;dxSkinMetropolisDarkRS26;dxSkinOffice2010BlackRS26;dxPSdxLCLnkRS26;FireDACCommonODBC;FireDACCommonDriver;dxMapControlRS26;dxSkinBlackRS26;dxSkinOffice2013LightGrayRS26;inet;dxSpellCheckerRS26;dxSkinCoffeeRS26;IndyIPCommon;dxSpreadSheetCoreConditionalFormattingDialogsRS26;vcl;dxPSdxDBOCLnkRS26;dxSkinMetropolisRS26;dxSpreadSheetReportDesignerRS26;dxPScxPCProdRS26;dxNavBarRS26;uniGUI26VCL;dxCoreRS26;cxExportRS26;FireDAC;dxThemeRS26;dxHttpIndyRequestRS26;dxPSPrVwRibbonRS26;dxSkinOffice2010SilverRS26;FireDACSqliteDriver;FireDACPgDriver;dxPSRichEditControlLnkRS26;dxSkinSevenClassicRS26;cxPivotGridChartRS26;dxPSdxDBTVLnkRS26;vclwinx;dxOfficeCoreRS26;dxTileControlRS26;dxSkinsCoreRS26;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;dxSkinLilianRS26;dxSkinSummer2008RS26;dxPSdxOCLnkRS26;dxSkinVS2010RS26;dxSkinBlueRS26;dbxcds;adortl;dxSkinMcSkinRS26;dxSkinDarkSideRS26;dxSpreadSheetCoreDialogsRS26;dxBarExtDBItemsRS26;dsnapxml;dbrtl;IndyProtocols;inetdbxpress;dxSkinOffice2007GreenRS26;dxRichEditInplaceRS26;dxSkinWhiteprintRS26;dxPSdxPDFViewerLnkRS26;dxSkinCaramelRS26;fmxase;$(DCC_UsePackage)
59 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
60 | Debug
61 | true
62 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
63 | 1033
64 |
65 |
66 | DBXSqliteDriver;dxFlowChartRS26;dxPSdxMapControlLnkRS26;vclactnband;dxBarRS26;vclFireDAC;dxFireDACEMFRS26;tethering;dxSpreadSheetInplaceRichEditRS26;FireDACADSDriver;dxSkinVisualStudio2013BlueRS26;dxRichEditCoreRS26;dxPSdxSpreadSheetLnkRS26;dxSkinSharpPlusRS26;vcltouch;vcldb;dxSkinFoggyRS26;dxSkinVisualStudio2013DarkRS26;dxSkinOffice2013DarkGrayRS26;dxGDIPlusRS26;dxAuthorizationAgentsRS26;dxPSdxFCLnkRS26;dxPSLnksRS26;dxPsPrVwAdvRS26;cxGridRS26;dxPDFViewerRS26;dxSkinSpringTimeRS26;vclx;dxPScxTLLnkRS26;dxSkinOffice2010BlueRS26;RESTBackendComponents;dxSkinOffice2016DarkRS26;uSynEdit_R2022;VCLRESTComponents;dxSkinMoneyTwinsRS26;dxSkinOffice2016ColorfulRS26;dxSkinValentineRS26;dxSkinHighContrastRS26;vclie;bindengine;CloudService;dxmdsRS26;FireDACMySQLDriver;dxdborRS26;dxSkinOffice2013WhiteRS26;dxFireDACServerModeRS26;bindcompdbx;IndyIPServer;cxPivotGridRS26;IndySystem;dxSkinDarkRoomRS26;cxTreeListdxBarPopupMenuRS26;dsnapcon;cxTreeListRS26;dxPScxPivotGridLnkRS26;cxSchedulerRibbonStyleEventEditorRS26;dxPSCoreRS26;FireDACMSAccDriver;fmxFireDAC;dxSpreadSheetRS26;vclimg;dxBarExtItemsRS26;dxPSdxGaugeControlLnkRS26;dxSkinLondonLiquidSkyRS26;dxSkinSevenRS26;dxdbtrRS26;dxRichEditControlCoreRS26;soaprtl;DbxCommonDriver;dxFlowChartAdvancedCustomizeFormRS26;dxSkinLiquidSkyRS26;dxDockingRS26;xmlrtl;soapmidas;fmxobj;cxLibraryRS26;rtl;DbxClientDriver;cxDataRS26;dxPScxSchedulerLnkRS26;dxSpreadSheetConditionalFormattingDialogsRS26;appanalytics;dxRibbonCustomizationFormRS26;cxSchedulerGridRS26;IndyIPClient;bindcompvcl;dxSkinVisualStudio2013LightRS26;dxADOEMFRS26;VclSmp;dxRibbonRS26;dxPScxCommonRS26;dxRichEditDocumentModelRS26;dxPScxGridLnkRS26;dxSkinDevExpressDarkStyleRS26;dxSpreadSheetCoreRS26;RESTComponents;dxSkinGlassOceansRS26;DBXInterBaseDriver;dxPScxExtCommonRS26;dxSkinPumpkinRS26;dxSkinXmas2008BlueRS26;dxSkinOffice2007SilverRS26;cxPageControlRS26;dxSkinTheBezierRS26;dxSkinDevExpressStyleRS26;dxRichEditControlRS26;dxGaugeControlRS26;dxorgcRS26;dxPScxVGridLnkRS26;bindcompfmx;dxSkinOffice2007PinkRS26;inetdb;dxSkinOffice2007BlueRS26;dxSkinStardustRS26;dxBarDBNavRS26;dxDBXServerModeRS26;dxSkinTheAsphaltWorldRS26;dxSkinSilverRS26;dxLayoutControlRS26;dxSkinBlueprintRS26;fmx;FireDACIBDriver;fmxdae;dxServerModeRS26;dxWizardControlRS26;dxSkiniMaginaryRS26;dxTabbedMDIRS26;dxEMFRS26;dbexpress;IndyCore;dxComnRS26;dsnap;dxSkinSharpRS26;uniGUI26m;uniGUI26Chart;FireDACCommon;cxSchedulerTreeBrowserRS26;dxADOServerModeRS26;soapserver;dxSkinOffice2007BlackRS26;cxPivotGridOLAPRS26;cxVerticalGridRS26;dxtrmdRS26;DBXMySQLDriver;cxEditorsRS26;cxSchedulerRS26;cxSchedulerWebServiceStorageRS26;dxSkinMetropolisDarkRS26;dxSkinOffice2010BlackRS26;dxPSdxLCLnkRS26;FireDACCommonODBC;FireDACCommonDriver;dxMapControlRS26;dxSkinBlackRS26;dxSkinOffice2013LightGrayRS26;inet;dxSpellCheckerRS26;dxSkinCoffeeRS26;IndyIPCommon;dxSpreadSheetCoreConditionalFormattingDialogsRS26;vcl;dxPSdxDBOCLnkRS26;dxSkinMetropolisRS26;dxSpreadSheetReportDesignerRS26;dxPScxPCProdRS26;dxNavBarRS26;uniGUI26VCL;dxCoreRS26;cxExportRS26;FireDAC;dxThemeRS26;dxHttpIndyRequestRS26;dxPSPrVwRibbonRS26;dxSkinOffice2010SilverRS26;FireDACSqliteDriver;FireDACPgDriver;dxPSRichEditControlLnkRS26;dxSkinSevenClassicRS26;cxPivotGridChartRS26;dxPSdxDBTVLnkRS26;vclwinx;dxOfficeCoreRS26;dxTileControlRS26;dxSkinsCoreRS26;CustomIPTransport;vcldsnap;DOSCommandDR;bindcomp;dxSkinLilianRS26;dxSkinSummer2008RS26;dxPSdxOCLnkRS26;dxSkinVS2010RS26;dxSkinBlueRS26;dbxcds;adortl;dxSkinMcSkinRS26;dxSkinDarkSideRS26;dxSpreadSheetCoreDialogsRS26;dxBarExtDBItemsRS26;dsnapxml;dbrtl;IndyProtocols;inetdbxpress;dxSkinOffice2007GreenRS26;dxRichEditInplaceRS26;dxSkinWhiteprintRS26;dxPSdxPDFViewerLnkRS26;dxSkinCaramelRS26;fmxase;$(DCC_UsePackage)
67 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
68 | Debug
69 | true
70 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
71 | 1033
72 |
73 |
74 | DEBUG;$(DCC_Define)
75 | true
76 | false
77 | true
78 | true
79 | true
80 |
81 |
82 | false
83 | ..\..\src;$(DCC_UnitSearchPath)
84 | true
85 | 1033
86 | (None)
87 |
88 |
89 | false
90 | RELEASE;$(DCC_Define)
91 | 0
92 | 0
93 |
94 |
95 |
96 | MainSource
97 |
98 |
99 | Cfg_2
100 | Base
101 |
102 |
103 | Base
104 |
105 |
106 | Cfg_1
107 | Base
108 |
109 |
110 |
111 | Delphi.Personality.12
112 | Library
113 |
114 |
115 |
116 | ISAPI.dpr
117 |
118 |
119 | ExpressScheduler connection to ExpressQuantumGrid by Developer Express Inc.
120 | ExpressScheduler tree browser by Developer Express Inc.
121 | ExpressScheduler Ribbon Event Window by Developer Express Inc.
122 | ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
123 | DBExpress Enterprise Data Explorer Integration
124 | Microsoft Office 2000 Sample Automation Server Wrapper Components
125 | Microsoft Office XP Sample Automation Server Wrapper Components
126 |
127 |
128 |
129 |
130 |
131 | true
132 |
133 |
134 |
135 |
136 | true
137 |
138 |
139 |
140 |
141 | true
142 |
143 |
144 |
145 |
146 | true
147 |
148 |
149 |
150 |
151 | true
152 |
153 |
154 |
155 |
156 | ISAPI.dll
157 | true
158 |
159 |
160 |
161 |
162 | 1
163 |
164 |
165 | 0
166 |
167 |
168 |
169 |
170 | classes
171 | 1
172 |
173 |
174 |
175 |
176 | res\xml
177 | 1
178 |
179 |
180 |
181 |
182 | library\lib\armeabi-v7a
183 | 1
184 |
185 |
186 |
187 |
188 | library\lib\armeabi
189 | 1
190 |
191 |
192 |
193 |
194 | library\lib\mips
195 | 1
196 |
197 |
198 |
199 |
200 | library\lib\armeabi-v7a
201 | 1
202 |
203 |
204 |
205 |
206 | res\drawable
207 | 1
208 |
209 |
210 |
211 |
212 | res\values
213 | 1
214 |
215 |
216 |
217 |
218 | res\values-v21
219 | 1
220 |
221 |
222 |
223 |
224 | res\values
225 | 1
226 |
227 |
228 |
229 |
230 | res\drawable
231 | 1
232 |
233 |
234 |
235 |
236 | res\drawable-xxhdpi
237 | 1
238 |
239 |
240 |
241 |
242 | res\drawable-ldpi
243 | 1
244 |
245 |
246 |
247 |
248 | res\drawable-mdpi
249 | 1
250 |
251 |
252 |
253 |
254 | res\drawable-hdpi
255 | 1
256 |
257 |
258 |
259 |
260 | res\drawable-xhdpi
261 | 1
262 |
263 |
264 |
265 |
266 | res\drawable-mdpi
267 | 1
268 |
269 |
270 |
271 |
272 | res\drawable-hdpi
273 | 1
274 |
275 |
276 |
277 |
278 | res\drawable-xhdpi
279 | 1
280 |
281 |
282 |
283 |
284 | res\drawable-xxhdpi
285 | 1
286 |
287 |
288 |
289 |
290 | res\drawable-xxxhdpi
291 | 1
292 |
293 |
294 |
295 |
296 | res\drawable-small
297 | 1
298 |
299 |
300 |
301 |
302 | res\drawable-normal
303 | 1
304 |
305 |
306 |
307 |
308 | res\drawable-large
309 | 1
310 |
311 |
312 |
313 |
314 | res\drawable-xlarge
315 | 1
316 |
317 |
318 |
319 |
320 | res\values
321 | 1
322 |
323 |
324 |
325 |
326 | 1
327 |
328 |
329 | 1
330 |
331 |
332 | 0
333 |
334 |
335 |
336 |
337 | 1
338 | .framework
339 |
340 |
341 | 1
342 | .framework
343 |
344 |
345 | 0
346 |
347 |
348 |
349 |
350 | 1
351 | .dylib
352 |
353 |
354 | 1
355 | .dylib
356 |
357 |
358 | 0
359 | .dll;.bpl
360 |
361 |
362 |
363 |
364 | 1
365 | .dylib
366 |
367 |
368 | 1
369 | .dylib
370 |
371 |
372 | 1
373 | .dylib
374 |
375 |
376 | 1
377 | .dylib
378 |
379 |
380 | 1
381 | .dylib
382 |
383 |
384 | 0
385 | .bpl
386 |
387 |
388 |
389 |
390 | 0
391 |
392 |
393 | 0
394 |
395 |
396 | 0
397 |
398 |
399 | 0
400 |
401 |
402 | 0
403 |
404 |
405 | 0
406 |
407 |
408 | 0
409 |
410 |
411 |
412 |
413 | 1
414 |
415 |
416 | 1
417 |
418 |
419 | 1
420 |
421 |
422 |
423 |
424 | 1
425 |
426 |
427 | 1
428 |
429 |
430 | 1
431 |
432 |
433 |
434 |
435 | 1
436 |
437 |
438 | 1
439 |
440 |
441 | 1
442 |
443 |
444 |
445 |
446 | 1
447 |
448 |
449 | 1
450 |
451 |
452 | 1
453 |
454 |
455 |
456 |
457 | 1
458 |
459 |
460 | 1
461 |
462 |
463 | 1
464 |
465 |
466 |
467 |
468 | 1
469 |
470 |
471 | 1
472 |
473 |
474 | 1
475 |
476 |
477 |
478 |
479 | 1
480 |
481 |
482 | 1
483 |
484 |
485 | 1
486 |
487 |
488 |
489 |
490 | 1
491 |
492 |
493 | 1
494 |
495 |
496 | 1
497 |
498 |
499 |
500 |
501 | 1
502 |
503 |
504 | 1
505 |
506 |
507 | 1
508 |
509 |
510 |
511 |
512 | 1
513 |
514 |
515 | 1
516 |
517 |
518 | 1
519 |
520 |
521 |
522 |
523 | 1
524 |
525 |
526 | 1
527 |
528 |
529 | 1
530 |
531 |
532 |
533 |
534 | 1
535 |
536 |
537 | 1
538 |
539 |
540 | 1
541 |
542 |
543 |
544 |
545 | 1
546 |
547 |
548 | 1
549 |
550 |
551 | 1
552 |
553 |
554 |
555 |
556 | 1
557 |
558 |
559 | 1
560 |
561 |
562 | 1
563 |
564 |
565 |
566 |
567 | 1
568 |
569 |
570 | 1
571 |
572 |
573 | 1
574 |
575 |
576 |
577 |
578 | 1
579 |
580 |
581 | 1
582 |
583 |
584 | 1
585 |
586 |
587 |
588 |
589 | 1
590 |
591 |
592 | 1
593 |
594 |
595 | 1
596 |
597 |
598 |
599 |
600 | 1
601 |
602 |
603 | 1
604 |
605 |
606 | 1
607 |
608 |
609 |
610 |
611 | 1
612 |
613 |
614 | 1
615 |
616 |
617 | 1
618 |
619 |
620 |
621 |
622 | 1
623 |
624 |
625 | 1
626 |
627 |
628 | 1
629 |
630 |
631 |
632 |
633 | 1
634 |
635 |
636 | 1
637 |
638 |
639 | 1
640 |
641 |
642 |
643 |
644 | 1
645 |
646 |
647 | 1
648 |
649 |
650 | 1
651 |
652 |
653 |
654 |
655 | 1
656 |
657 |
658 | 1
659 |
660 |
661 | 1
662 |
663 |
664 |
665 |
666 | 1
667 |
668 |
669 | 1
670 |
671 |
672 | 1
673 |
674 |
675 |
676 |
677 | 1
678 |
679 |
680 | 1
681 |
682 |
683 | 1
684 |
685 |
686 |
687 |
688 | 1
689 |
690 |
691 | 1
692 |
693 |
694 | 1
695 |
696 |
697 |
698 |
699 | 1
700 |
701 |
702 | 1
703 |
704 |
705 | 1
706 |
707 |
708 |
709 |
710 | 1
711 |
712 |
713 | 1
714 |
715 |
716 | 1
717 |
718 |
719 |
720 |
721 | 1
722 |
723 |
724 |
725 |
726 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
727 | 1
728 |
729 |
730 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
731 | 1
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 | 1
740 |
741 |
742 | 1
743 |
744 |
745 | 1
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 | Contents\Resources
754 | 1
755 |
756 |
757 | Contents\Resources
758 | 1
759 |
760 |
761 |
762 |
763 | library\lib\armeabi-v7a
764 | 1
765 |
766 |
767 | 1
768 |
769 |
770 | 1
771 |
772 |
773 | 1
774 |
775 |
776 | 1
777 |
778 |
779 | 1
780 |
781 |
782 | 1
783 |
784 |
785 | 0
786 |
787 |
788 |
789 |
790 | 1
791 |
792 |
793 | 1
794 |
795 |
796 |
797 |
798 | Assets
799 | 1
800 |
801 |
802 | Assets
803 | 1
804 |
805 |
806 |
807 |
808 | Assets
809 | 1
810 |
811 |
812 | Assets
813 | 1
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 | True
828 | False
829 |
830 |
831 | 12
832 |
833 |
834 |
835 |
836 |
837 |
--------------------------------------------------------------------------------
/iis/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "d41d8cd98f00b204e9800998ecf8427e",
3 | "updated": "2020-02-05T21:40:47.5941457-02:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/iis/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples-iis",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/hashload/horse": "^1.7.0"
10 | }
11 | }
--------------------------------------------------------------------------------
/jwt/auth/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-15T21:14:03.4258359-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/hashload/jhonson": {
14 | "name": "jhonson",
15 | "version": "1.0.3",
16 | "hash": "334dfe6b2e7daa4cb6af5b1bf88ec76e",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | },
21 | "https://github.com/paolo-rossi/delphi-jose-jwt": {
22 | "name": "delphi-jose-jwt",
23 | "version": "v2.5.2",
24 | "hash": "589e56e202f3acd41b4021314c54518c",
25 | "artifacts": {},
26 | "failed": false,
27 | "changed": false
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/jwt/auth/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/horse": "^1.7.0",
10 | "github.com/HashLoad/jhonson": "^1.0.3",
11 | "https://github.com/paolo-rossi/delphi-jose-jwt": "^v2.5.0"
12 | }
13 | }
--------------------------------------------------------------------------------
/jwt/auth/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.Jhonson,
8 | JOSE.Core.JWT,
9 | JOSE.Core.Builder,
10 | System.SysUtils,
11 | System.JSON;
12 |
13 | {$R *.res}
14 |
15 | var
16 | App: THorse;
17 |
18 | begin
19 | App := THorse.Create(9000);
20 |
21 | App.Use(Jhonson);
22 |
23 | App.Get('/auth',
24 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
25 | var
26 | LToken: TJWT;
27 | begin
28 | LToken := TJWT.Create;
29 | try
30 | LToken.Claims.Issuer := 'Horse';
31 | LToken.Claims.Subject := 'Vinicius Sanchez';
32 | LToken.Claims.Expiration := Now + 1;
33 | Res.Send(TJSONObject.Create(TJSONPair.Create('token', TJOSE.SHA256CompactToken('CodeRage', LToken))));
34 | finally
35 | LToken.Free;
36 | end;
37 | end);
38 |
39 | App.Start;
40 | end.
41 |
--------------------------------------------------------------------------------
/jwt/client/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2019-10-15T21:31:15.8953656-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/hashload/horse-jwt": {
14 | "name": "horse-jwt",
15 | "version": "1.2.1",
16 | "hash": "610d47450dfef11e3a12839ba1178c3f",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | },
21 | "github.com/hunsche/delphi-jwt": {
22 | "name": "delphi-jwt",
23 | "version": "2.2.3",
24 | "hash": "59f0e419d889e2103abc7699bd707a2e",
25 | "artifacts": {},
26 | "failed": false,
27 | "changed": false
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/jwt/client/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/HashLoad/horse": "^1.7.0",
10 | "github.com/HashLoad/horse-jwt": "^v1.1.6"
11 | }
12 | }
--------------------------------------------------------------------------------
/jwt/client/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.JWT;
8 |
9 | {$R *.res}
10 |
11 | var
12 | App: THorse;
13 |
14 | begin
15 | App := THorse.Create(9000);
16 |
17 | App.Use(HorseJWT('CodeRage'));
18 |
19 | App.Get('/ping',
20 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
21 | begin
22 | Res.Send('pong');
23 | end);
24 |
25 | App.Start;
26 | end.
27 |
--------------------------------------------------------------------------------
/octet-stream/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "6ef9161b900632671022358216c7dfe7",
3 | "updated": "2021-05-27T15:59:00.9292705-03:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "2.0.13",
8 | "hash": "32daa5a81f115ecc285cbbbbdbcddcea",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | },
13 | "github.com/hashload/horse-octet-stream": {
14 | "name": "horse-octet-stream",
15 | "version": "1.9.4",
16 | "hash": "c04011f2536230c603e0dde14da6aabf",
17 | "artifacts": {},
18 | "failed": false,
19 | "changed": false
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/octet-stream/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samples",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/hashload/horse": "^2.0.13",
10 | "github.com/hashload/horse-octet-stream": "^1.9.4"
11 | }
12 | }
--------------------------------------------------------------------------------
/octet-stream/horse.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/viniciussanchez/coderage/9f12b6f77252b44be4963adf0e3de108c579e86c/octet-stream/horse.pdf
--------------------------------------------------------------------------------
/octet-stream/novo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/viniciussanchez/coderage/9f12b6f77252b44be4963adf0e3de108c579e86c/octet-stream/novo.pdf
--------------------------------------------------------------------------------
/octet-stream/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | uses
6 | Horse,
7 | Horse.OctetStream,
8 | System.Classes,
9 | System.SysUtils;
10 |
11 | {$R *.res}
12 |
13 | begin
14 | THorse.Use(OctetStream);
15 |
16 | THorse.Get('pdf',
17 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
18 | var
19 | LStream: TFileStream;
20 | begin
21 | LStream := TFileStream.Create('C:\Users\vinic\Downloads\coderage\octet-stream\horse.pdf', fmOpenRead);
22 | Res.Send(LStream);
23 | end);
24 |
25 | THorse.Post('pdf',
26 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
27 | begin
28 | Req.Body.SaveToFile('C:\Users\vinic\Downloads\coderage\octet-stream\novo.pdf');
29 | Res.Status(THTTPStatus.NoContent);
30 | end);
31 |
32 | THorse.Listen;
33 | end.
34 |
--------------------------------------------------------------------------------
/octet-stream/samples.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/viniciussanchez/coderage/9f12b6f77252b44be4963adf0e3de108c579e86c/octet-stream/samples.res
--------------------------------------------------------------------------------
/ping-pong/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "d41d8cd98f00b204e9800998ecf8427e",
3 | "updated": "2020-02-06T20:19:38.4384894-02:00",
4 | "installedModules": {
5 | "github.com/hashload/horse": {
6 | "name": "horse",
7 | "version": "1.7.0",
8 | "hash": "7c3b15d6289c0ab49f483626c61da28b",
9 | "artifacts": {},
10 | "failed": false,
11 | "changed": false
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/ping-pong/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ping-pong",
3 | "description": "",
4 | "version": "1.0.0",
5 | "homepage": "",
6 | "mainsrc": "./",
7 | "projects": [],
8 | "dependencies": {
9 | "github.com/hashload/horse": "^1.7.0"
10 | }
11 | }
--------------------------------------------------------------------------------
/ping-pong/samples.dpr:
--------------------------------------------------------------------------------
1 | program samples;
2 |
3 | {$APPTYPE CONSOLE}
4 |
5 | {$R *.res}
6 |
7 | uses
8 | Horse;
9 |
10 | var
11 | App: THorse;
12 |
13 | begin
14 | App := THorse.Create(9000);
15 |
16 | App.Get('/ping',
17 | procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
18 | begin
19 | Res.Send('pong');
20 | end);
21 |
22 | App.Start;
23 | end.
24 |
--------------------------------------------------------------------------------