How to hide standard interfaces from the default Web Service page

advertisements

Some time ago I've been thinking about how to hide from default page of the web service the IAppServer and IAppServerSOAP interfaces and that appear by default. I know that my Webservice interface, has these interfaces as ancestors, but I believe pointless "see" these interfaces on the default page, as the client programs do not use them directly.

Is there any way to hide these interfaces and just keep our interface and others that were created?


You should be able to alter the WSDL returned by the service. I think there's a WSDL control, where you can override the WSDL response to either edit it, or substitute whatever you want.

Specifically, add a TWSDLHTMLPublish component to your WebModule form. Use the OnBeforePublishingWSDL to write your own WSDL, like this:

procedure TWebModule2.WSDLHTMLPublish1BeforePublishingWSDL(
  const IntfName: WideString; var WSDL: WideString; var Handled: Boolean);
begin
  WSDL := '<foo>bar</foo>';
  Handled := true;
end;