Commit Graph

280 Commits

Author SHA1 Message Date
viniciussanchez
ba9b896af8 AErrorMessage default is empty when AErrorCode is 204 (No content) 2019-07-26 09:42:57 -03:00
viniciussanchez
db5b505cf7 IETF - RFC 6750 #244 2019-07-26 08:51:11 -03:00
geoffsmith82
2e239baacb Remove unneeded Indy file references 2019-07-06 16:11:18 +10:00
Daniele Teti
39741b08ec Small improvements on webrequest class 2019-05-19 14:20:15 +02:00
Daniele Teti
53bdb8acc0 Improved MVCActiveRecord 2019-05-16 00:17:19 +02:00
Daniele Teti
7b39d94537 Support for X-HTTP-Method-Override to work behind corporate firewalls. 2019-05-10 00:47:18 +02:00
Daniele Teti
6a664d608c 3.1.1-beryllium-RC5 2019-05-09 21:00:26 +02:00
Daniele Teti
fc28b3ba5e Removed strings indexing 2019-05-02 17:39:17 +02:00
Daniele Teti
020cdbc0fa Added custom exception handling. Based on work of David Moorhouse (https://github.com/danieleteti/delphimvcframework/issues/191) 2019-04-20 12:10:33 +02:00
Daniele Teti
d20ef3fe41 Added '/describe' to json-rpc
Added 'MVCInheritable' attribute
2019-04-03 09:45:31 +02:00
Daniele Teti
e86d004808 Compatibility Issues Fixed 2019-03-19 12:06:25 +01:00
Daniele Teti
dc2328c89a Added Dict function to easily return a dictionary of strings.
Improved exceptions rendering.
2019-03-16 17:21:42 +01:00
Daniele Teti
5da30ed243 Extended support for HATEOAS 2019-03-10 16:29:53 +01:00
Daniele Teti
beb059a0e3 Improved support for HATEOAS in renders 2019-03-08 09:34:03 +01:00
Daniele Teti
f7f0ce8548 Fixed! #164 2019-03-06 12:01:00 +01:00
Daniele Teti
9ebb33969a - New overloads for all the Log* calls. Now it is possibile to call LogD(lMyObject) to get logged lMyObject as JSON.
- Added new unit tests for
- Improved `MVCEntitiesGenerator`
2019-03-05 20:57:25 +01:00
Daniele Teti
75e975811b - Improved! In case of unhandled exception TMVCEngine is compliant with the default response content-type (usually it did would reply using text/plain).
- Fix! [issue184](https://github.com/danieleteti/delphimvcframework/issues/184).
2019-02-24 20:43:40 +01:00
Daniele Teti
8ed859b7d1 New build system based on pyinvoke 2019-01-08 12:48:53 +01:00
Daniele Teti
f64eebff6a Improvements to the JSON-RPC layer, added MAX_REQUEST_SIZE check and config key. UPdated IDE Expert to add the new config key in the generated code. 2018-12-17 00:40:27 +01:00
Daniele Teti
c5800b3354 Added dmvcframework package
Features freeze for 3.1 (lithium)
Working on the planned issues for this milestone https://github.com/danieleteti/delphimvcframework/milestones/3.1%20(helium)
2018-12-09 23:05:01 +01:00
Daniele Teti
d4a23e52fb Removed unit MVCFramework.TypesAliases.pas
Updated JsonDataObjects.pas
2018-11-24 16:57:04 +01:00
Daniele Teti
505710f9cd Small fixes to custom stream json serializer 2018-11-09 18:12:29 +01:00
Daniele Teti
7ca4ccbe59 Completed refactoring about IMVCTypeSerializer 2018-10-31 01:07:25 +01:00
Daniele Teti
132e169542 Changes to the custom type serializer interface 2018-10-30 13:53:18 +01:00
Daniele Teti
70c1e55e94 New MVCActiveRecord showcase samples
New Unit Tests for Compression in TRESTClient
Updated RQL Parser and compilers
New EntitiesGenerator (alpha)
Improved unittests
Updated landing page
2018-10-23 16:18:50 +02:00
Daniele Teti
96bbb83209 Improved support for MySQL in MVCActiveRecord
Better multi thread handling in MVCActiveRecord
2018-10-14 18:24:07 +02:00
Daniele Teti
e4cd5894ae MVCActiveRecord Framework, Sample for MVCActiveRecord Framework 2018-09-25 15:38:52 +02:00
Daniele Teti
bb454af16a - Speed improvement! Removed enhanced visibility for action methods. Now only public and published methods can be used as actions.
- `TMVCController.Create` is `virtual`! Now on your base controllers can be even more powerful!
- FIX for [issue #143](https://github.com/danieleteti/delphimvcframework/issues/143)
2018-08-08 17:12:12 +02:00
Daniele Teti
7998811c74 - 404 and 500 status code returns always a text/plain content-type
- Refactored ISAPI sample
2018-08-08 15:43:37 +02:00
Daniele Teti
00d5a9699a - Config[TMVCConfigKey.FallbackResource] is served only if request path is empty or /.
- Now the JSON-RPC executor provides methods to handle HTTP headers for JSON-RPC requests and notifications.
- FIX for [issue #141](https://github.com/danieleteti/delphimvcframework/issues/141)
- `TDataSetHolder` is a new render that is able to render a dataset with a set of custom metadata (eg `count`,`page` etc). Check [issue #137](https://github.com/danieleteti/delphimvcframework/issues/137)
2018-08-05 20:31:56 +02:00
Daniele Teti
34bc5e0638 Added JSON-RPC Notification Support
Added IMVCJSONRPCExecutor for a simpler use of JSON-RPC servers
2018-05-16 19:46:35 +02:00
Daniele Teti
4daba2ea67 Some refactoring preparing RC13 2018-02-20 22:36:36 +01:00
Daniele Teti
b49bc82d8b 3.0 RC12 hydrogen 2018-01-29 17:30:53 +01:00
Daniele Teti
ae3a3ec4e6 Added ViewData and ViewDataset. New Compression Sample. 2017-11-23 17:31:26 +01:00
Daniele Teti
a8d57bb78b RC10 2017-10-16 22:57:49 +02:00
Daniele Teti
ac654658f1 Improved JSON RPC 2.0 Client Sample 2017-10-09 16:17:34 +02:00
Daniele Teti
6321021430 Initial commit for JSON-RPC 2.0 2017-09-24 19:41:23 +02:00
Daniele Teti
25df8e9035 Fixed a rare bug on TEncoding and BodyAs<T>
Small JWT code improvements
2017-09-23 15:03:55 +02:00
Daniele Teti
4942c3253b JWT Optimization 2017-09-22 09:34:33 +02:00
Daniele Teti
a2718115a0 Small FIX for Delphi XE6 2017-09-21 23:11:50 +02:00
Daniele Teti
121b6359e1 - Removed ContentEncoding
FIX https://github.com/danieleteti/delphimvcframework/issues/105
2017-09-08 17:00:46 +02:00
Daniele Teti
fc72c8c49b Some minor fixes.
All protected serializers methods are now public so that is possible to use the low level serialization as was possibile with the old ObjectsMappers.
2017-09-07 00:11:25 +02:00
Daniele Teti
0b9b8a01bf FIX https://github.com/danieleteti/delphimvcframework/issues/83 2017-08-29 11:54:29 +02:00
Daniele Teti
59b6208356 https://github.com/danieleteti/delphimvcframework/issues/90 2017-07-17 11:48:26 +02:00
Daniele Teti
f108357a92 FIX JWT (ported from 2.x branch (247f25e519)
SSE Sample updated
2017-07-05 00:19:38 +02:00
Daniele Teti
d6a04c89c2 3_0_0_hydrogen_RC6 2017-06-22 16:19:13 +02:00
Daniele Teti
d624535e85 ROUTER Optimization (50% faster) 2017-06-02 00:12:00 +02:00
Daniele Teti
82ef760987 REMOVED ObjectsMappers.pas (finally!) 2017-05-25 16:58:07 +02:00
Daniele Teti
ff1bc73949 ADDED an action which uses a custom serializer in sample "renders.dproj"
NEW the JsonDataObjects based serializer is the default serializer
FIX Rendering a nil value, will result in a "null" json (with the json serializers)
2017-05-18 00:38:19 +02:00
Daniele Teti
1b20254836 3.0.0 hydrogen RC2 2017-05-09 23:14:20 +02:00
Daniele Teti
a866a37b27 3.0.0 hydrogen RC1 2017-05-09 13:38:03 +02:00
Daniele Teti
96dc31e97b Added support for multiple parameter with the same name in the http standard submit. 2017-05-08 17:27:00 +02:00
Daniele Teti
4e366e5a53 Updated some demos
Added overload for Render(TDataSet)
Changed default serialization for Render(TDataSet)
2017-04-29 23:57:32 +02:00
Daniele Teti
53ecae82db TestServer OK on linux. All unit tests are ok. 2017-04-14 16:43:53 +02:00
Daniele Teti
aadceee80f Adapted to the single file for StompClient 2017-04-04 13:04:29 +02:00
Daniele Teti
fcec5e7370 FIX some demos 2017-03-30 17:00:12 +02:00
Ezequiel Juliano Müller
74f921cc76 Adding DataSets Serialization 2017-03-29 09:49:35 -03:00
Ezequiel Juliano Müller
372bf9bc13 Refactoring, standardizing names and removing unnecessary dependencies. 2017-03-23 14:51:25 -03:00
Ezequiel Juliano Müller
611f297425 Changes in unit tests 2017-03-20 17:42:28 -03:00
Ezequiel Juliano Müller
ee9659762b Refactoring and Removing Dependencies 2017-03-20 15:08:01 -03:00
Ezequiel Juliano Müller
5f34de36b1 Refactoring and Removing Dependency with SystemJSON and Mapper 2017-03-13 16:52:11 -03:00
Ezequiel Juliano Müller
d0f3961bed Add initial sample with JsonDataObjects serializer 2017-03-02 15:29:43 -03:00
Desenvolvimento
6a27680a0a Merge branch 'pluggable_mapper' of https://github.com/danieleteti/delphimvcframework into pluggable_mapper
# Conflicts:
#	sources/MVCFramework.Serializer.Commons.pas
2017-03-01 17:43:16 -03:00
Desenvolvimento
88b8e7da3c Refactoring the System JSON Serializer. Adding the serializer to JsonDataObjects. Problems with some unit tests. 2017-03-01 17:40:57 -03:00
Daniele Teti
3580d5ab5e MERGED https://github.com/danieleteti/delphimvcframework/pull/72
MERGED https://github.com/danieleteti/delphimvcframework/pull/73
2017-02-24 14:20:05 +01:00
Daniele Teti
c7c738a00e Removed RenderJSON 2017-02-22 19:50:49 +01:00
Daniele Teti
51351a6f73 removed *Strict serialization type
added TMVCSerializerStrictJSON
2017-02-13 20:51:59 +01:00
Daniele Teti
4cc5b6560c CustomTypesSerialiers 2017-02-09 19:34:12 +01:00
Daniele Teti
c80f078337 TValue de/serialization 2017-02-09 11:24:24 +01:00
Daniele Teti
9b70ee40fc IMPLEMENTED
IMVCSerUnSer = interface
    ['{1ECA942A-E3C4-45DD-9D23-C00363B5E334}']
    function SerializeObject(AObject: TObject; AIgnoredProperties: array of string): String;
    function SerializeObjectStrict(AObject: TObject): String;
    function SerializeDataSet(ADataSet: TDataSet; AIgnoredFields: array of string): String;
    function SerializeCollection(AList: TObject; AIgnoredProperties: array of string): String;
    function SerializeCollectionStrict(AList: TObject): String;
    procedure DeserializeObject(ASerializedObject: String; AObject: TObject);
    procedure DeserializeCollection(ASerializedObjectList: string; AList: IMVCList; AClazz: TClass);
  end;
2017-02-08 18:30:32 +01:00
Daniele Teti
862f31a1ce Added 'Renderer' in TMVCController 2017-02-08 11:42:35 +01:00
spinettaro
72475e4b96 fixed session timeout when timeout value is 0 2017-01-20 17:29:09 +01:00
Daniele Teti
808e3902d1 Moved TMVCHTTPMethodType and TMVCHTTPMethods to MVCFramework.Commons.pas (You controllers may not compile animore without using this unit)
Better mobile support for RESTAdapter
Better IFDEFing
2017-01-18 21:54:16 +01:00
Daniele Teti
ccc8ee90ab FIX OnBeforeAction (Thank you to Marco Mottadelli)
More unit tests
Refactoring for XE6
Updated copyright to 2017
2017-01-05 12:45:51 +01:00
Daniele Teti
32e7a8d325 Added features selection in dmvcframework.inc
Added MVCFramework.Patches.pas which should try to uniform interfaces of the changed classes in different versions of Delphi
2016-12-30 20:42:49 +01:00
Daniele Teti
05fb9259ae Compilable with XE6 and older
New unit tests
2016-12-29 19:29:22 +01:00
spinettaro
a4a3ea533a Set Stream position to 0, before sending the stream, in SendStream method
This fix stream rendering when DMVC is under apache
2016-12-13 18:16:12 +01:00
Daniele Teti
60ef18d148 ADDED
Config[TMVCConfigKey.FallbackResource]

Defines a default URL for requests that don't map to a route or a file (useful for client side web app)

The experts generates a Config[TMVCConfigKey.FallbackResource] which ponts to 'index.html'
2016-12-07 12:35:46 +01:00
Daniele Teti
81744b892e Merge changes from https://github.com/danieleteti/delphimvcframework/pull/60
Some refactoring needed to be coherent to the rest of the framework
Added a new sample to chow customsession utilization
2016-12-05 15:51:05 +01:00
airtonjs
fa16b01164 Permit to use other class of session 2016-12-05 09:03:58 -04:00
Daniele Teti
9e76485268 Samples Refactoring 2016-11-27 23:18:32 +01:00
Daniele Teti
56a7c8311d FIX Render(Stream,False)
Added Ownership to TDuckTypedList
Added 2 more unit tests
2016-11-18 18:25:50 +01:00
danieleteti
4d1427d859 -IDE Expert small bug fix
- ADDED Paremeter "ARewindStream" to procedure SendStream(AStream: TStream; AOwnStream: Boolean = true;
      ARewindStream: Boolean = false); virtual;
2016-10-10 16:11:48 +02:00
danieleteti
78f635c720 Added Apache 2.4 for windows in the "apache module sample" folder. 2016-10-10 15:49:10 +02:00
danieleteti
ecc4947290 ADDED LoadViewFragment
ADDED TMVCMediaType.TEXT_CSV
2016-10-02 17:44:45 +02:00
danieleteti
3672a73b8d Names refactoring
Added TMVCController.RenderWrappedList to renders heterogeneous lists
2016-09-30 11:44:30 +02:00
spinettaro
d689e92642 added support in TMVCController and ObjectsMappers to serialize a IWrappedList
added link to LoggerPro in tests projects
2016-09-29 18:17:26 +02:00
MPannier
07dcef7eab added ReleaseGlobalLogger in MVCFramework.Logger.pas
added ParamsAsInt64 for TMVCWebRequest
added some "more Results" in TRTTIUtils.TValueAsString
2016-09-27 14:33:51 +02:00
MPannier
af0e4fdca7 removed Iocp.Logger.pas (no longer needed)
Delphi XE3 adjustments
added some missing consts to paramters (thanks to FixInsight; there are a lot more hints)
2016-09-27 14:22:17 +02:00
MPannier
751069cb07 Delphi XE3 adjustments
corrected search path in sample projects
2016-09-27 13:49:24 +02:00
danieleteti
9eaccd9a3e FIX for DX10 Seattle 2016-09-25 22:31:44 +02:00
danieleteti
83f5b378ed Possibile FIX for a RTL bug. IT works now on Berlin and Seattle. 2016-09-25 22:25:06 +02:00
danieleteti
ce80bb79fd Refactoring 2016-09-25 16:17:48 +02:00
danieleteti
6842f5efec IDE Expert: Load optimized configuration for the default generated project (MaxConnections and ListenQueue)
small optimization for body reading in the TWebContext
add sample for CustomAuth
2016-09-20 11:10:47 +02:00
danieleteti
f0670af618 Added custom authentication and authorization middleware 2016-09-16 23:55:11 +02:00
danieleteti
0f5f101802 Updated File CHANGES.TXT 2016-09-06 10:41:31 +02:00
danieleteti
6875ff3704 Added LoggerPro as git submodule
Updated MVCFramework.Logger.pas to use LoggerPro instead of the modified version of IOCPLogger
Added CustomLoggerSample.dproj
Removed IOCP dependencies
2016-09-06 10:33:09 +02:00
danieleteti
ef345debe5 FIX readded Pre XE7 support 2016-09-06 08:37:54 +02:00
danieleteti
be7d5d7183 Send DocumentIndex if request route = '/' and index file exists
FIX Charset issue on static contents
2016-09-05 15:34:55 +02:00
danieleteti
6cbfffdb50 Disabled STOMP Extension. Need refactoring. 2016-08-09 13:08:33 +02:00
danieleteti
5601767e04 - added method TWebContext.SessionStarted (check sample Sessions to see how it works)
- added method TWebContext.SessionID
- added unit test for TWebContext.SessionStarted
2016-06-28 13:44:09 +02:00
danieleteti
f9df7124c1 - added "HasError" and "Error" properties to the IRESTResponse (thank you Mathias Pannier)
- added "Context.Request.QueryStringParams: TStrings"
2016-06-23 12:11:11 +02:00
danieleteti
a102909941 Completed JWT Middleware (Check jsonwebtoken sample to know how to use) 2016-06-23 11:43:15 +02:00
danieleteti
1ef246a589 - Added strongly typed actions
- TWebContext param in the actions is optional
- In case of "action not found", the server dont returns NEVER the document index
- Refactoring
- More unit tests
- BasicDemo updated with typed actions
- Copyright updated (just formatting)
2016-06-22 17:50:31 +02:00
danieleteti
43c3881cc4 ADDED the followings method to TMVCController
-RenderJSONArrayAsProperty
-EnsureQueryParamExists
2016-05-11 10:40:12 +02:00
danieleteti
8f1d0ddf56 ADD Render(TTextWriter) 2016-04-22 09:46:28 +02:00
danieleteti
40fd543a60 Added "DocumentIndex" functionality 2016-04-20 11:02:28 +02:00
danieleteti
cacdabdbb7 Session refactoring
Now session is available also with Context.Session
2016-04-03 22:36:13 +02:00
danieleteti
06c9caa616 ADDED Mapper.LoadJSONObjectToObject
ADDED UnitTest for Mapper.LoadJSONObjectToObject
2016-03-24 15:30:18 +01:00
danieleteti
9d24461a24 https://github.com/danieleteti/delphimvcframework/issues/36 2016-03-23 15:25:05 +01:00
MPannier
40d7220d5d removed Context.Response.SetCustomHeader('Content-Length' in TMVCStaticContents.SendFile; See comment 2016-03-03 16:50:55 +01:00
danieleteti
d39854a8b3 Integrated the path from Mathias Pannier regarding http://qc.embarcadero.com/wc/qcmain.aspx?d=67350 2016-03-01 22:50:32 +01:00
MPannier
0f15eb36e5 Delphi XE3 compatibility
Signed-off-by: danieleteti <d.teti@bittime.it>
2016-02-29 14:52:26 +01:00
Ezequiel Juliano Müller
95427f674b Merge branch 'master' of https://github.com/danieleteti/delphimvcframework into HEAD
# Conflicts:
#	sources/MVCFramework.Server.pas
#	sources/MVCFramework.pas
#	unittests/Several/FrameworkTestsU.pas
2016-02-29 10:08:48 -03:00
Ezequiel Juliano Müller
756b7683a0 Add constructor delegate to controllers. This aims to integrate with frameworks to dependency injection. 2016-02-29 09:48:36 -03:00
danieleteti
2c41c13fd4 Added ExposeServerSignature config key
Added ServerName config key (tristan)
Updated IDEEXPERT with ExposeServerSignature settings (default false)
Updated some sample
2016-02-28 19:06:05 +01:00
danieleteti
80be08f7fc FIX about session cookie 2016-02-28 18:35:50 +01:00
danieleteti
462af4c68f Added TMVCController.GetRenderedView 2016-02-27 09:58:54 +01:00
danieleteti
25b064fec2 Introduced XmlDoc on IMVCMiddleware
Updated unit test for new middleware interface
2016-02-23 23:22:44 +01:00
danieleteti
e68dcafe9b Changes to the Authentication mechanism
Adding some default to the expert
2016-02-23 22:33:21 +01:00
danieleteti
c9bd875467 fix - sesstion timeout now depends by the session_timeout config section 2016-02-18 13:54:57 +01:00
Ezequiel Juliano Müller
1571cc2074 Update Copyright 2015-12-29 14:57:04 -02:00
Ezequiel Juliano Müller
a1d56ebc9c Update licence 2015-12-22 09:38:17 -02:00
danieleteti
f82869c6ae FIX in POSTed and PUTed data 2015-12-16 16:41:06 +01:00
danieleteti
85c04d7bb4 ADDED MVCDocAttributes
ADDED Alias MVCHTTPMethodsAttribute to MVCHTTPMethodAttribute
2015-12-16 15:57:20 +01:00
Tristan Marlow
80a0bc8f8c MVCFramework option for unhandled actions
ObjectMappers DataSetToObject support boolean types
Sample\SoapRest Example application server providing both SOAP and REST webservices
2015-12-02 11:14:15 +08:00
danieleteti
7ca59a3b88 Mustache Server Side Views 2015-10-18 16:35:50 +02:00
danieleteti
6750ea7f5f REMOVED some warnings
CHANGED Logger in winecellarWITHDORM Sample
Now ObjectsMappers serialize differently String and AnsiString
ADDED SAMPLE "deserilizeandserialize"
2015-10-17 12:00:05 +02:00
danieleteti
46853a9f54 FIX Added StatusReason in RenderException
FIX Non ANSI characters were not correctly handled in TDataSetHelper
2015-08-27 11:13:40 +02:00
danieleteti
0bbf1950be added Render(TStream,Boolean) 2015-06-29 14:36:54 +02:00
danieleteti
5f55e158ae Merge branch 'master' of https://github.com/danieleteti/delphimvcframework 2015-06-04 18:14:37 +02:00
Ezequiel
8e601103a4 Bug fix and add compressor and sll in RESTClient 2015-06-03 17:47:07 -03:00
danieleteti
02f6d7b12f Change CheckIP function to check only if the ip string is empty 2015-05-31 11:24:47 +02:00
daniele.teti
0d134eb563 FIX Compilation bug on XE6 for the ToJSON method 2015-04-10 09:45:45 +00:00
daniele.teti
02511a14e2 + MERGE FROM "AUTH" FEATURE BRANCH 2015-04-01 15:01:23 +00:00
daniele.teti
1936fdc225 - refactoring
- cleaning up
- added "low-level" serialization based on fields (and not properties)
- added $dmvc_classname property handling for fields serialization
- added more unittests
2015-02-16 13:25:09 +00:00
daniele.teti
f95bed5d37 ToString Delphi < XE7
ToJSON   Delphi >= XE7
2015-01-30 09:36:54 +00:00
daniele.teti
f20a7fe443 FIX for DataSetSerialization 2015-01-14 13:13:48 +00:00
daniele.teti
5a64d94e53 2014-12-18 13:41:04 +00:00
daniele.teti
e176fa676a 2014-10-26 19:48:52 +00:00
daniele.teti
db659d0590 2014-10-03 09:40:57 +00:00
daniele.teti
94e093a536 Updated support for Apache Module on XE7 2014-09-29 15:42:34 +00:00
daniele.teti
e7ffca72df XE7 Support (beta) 2014-09-05 10:47:40 +00:00
daniele.teti
0d42ab3f47 ReqMulti.pas now is always included 2014-07-21 13:01:31 +00:00
daniele.teti
77db09cc80 FIX for chinese text 2014-07-04 15:52:17 +00:00
daniele.teti
0b6df41668 BUGFIXES
New sample: articles_crud
2014-06-27 13:30:39 +00:00
daniele.teti
0e9aad849a FIX FOR ISAPI modules on XE6 2014-05-30 09:29:58 +00:00
daniele.teti
839321ba27 2014-05-21 23:06:35 +00:00
daniele.teti
32b1db46b6 2014-05-21 15:16:15 +00:00
daniele.teti
205ee52196 BETA support for Apache web server using Delphi XE6 2014-05-14 13:55:41 +00:00