Our current development workflow that successfully created a running environment must remain functional after any updates. The “RODL first” approach needs to continue working as expected.
for the RO channels, the removal of the attributes is a valid assumption. But remember the background of the REST Server extension of RemObjects. At that time, RemObjects decided to support only the server side, but not the Client Side in Delphi.
This has brocken our approach to have a dUnitx for each Service, that tests through the API with all the supported Channels. We therefore where forced to implemented an own Channel and Message
unit ROxRestChannel; (using internally the Delphi TRESTClient component) unit ROxRestMessage; (extracting the message attributes via TROxRestMessage.ApplyAttributes2_Transport(ATransport: IROTransport);
That approach works since 10 year and is now completely broken.
If you want to drop the HTTP Custom area in the /intf area, I do not see any easy workaround beside a new parameter for TROCodegen4 (e.g. DelphiAddCustomAttributes)
Message.SetAttributes is needed for proper initialization of soap message only.
HttpAPI* attributes aren’t related to soap message and are required for generating HttpAPI meta data only, i.e. http://localhost:8099/api.
as a result, usage of HttpAPI* attributes in Message.SetAttributes is useless because client (_Intf) and server (_Invk) don’t use it at all.
I do not see your point completely. How should my workflow now look like. I produce all files needed to implement a server and the delphi clients (REST, SOAP, Binary) in a set of calls to TROCodegen4. Now you want the workflow to change completely? Build a server first, starting the API … and still it will not work to derive from there a common dUnitx Delphi Interface.
Fact is, there was implemented a significant change that breaks my environment completely.