I'm using PHP + Zend Framework on Microsoft IIS7 (with URL Rewrite extension - similar in functionality to Apache's mod_rewrite).
I'm creating some web services. Currently we have 3 specific services - many more are coming.
1 - Authentication - allows a remote system to gain a temporary authentication token. This service has 3 methods : Login, Authenticate, Logout
2 - Supply - allows a remote system to retrieve specific types of data from our databases. This service has many methods, each one related to a specific type of data.
3 - Versions - allows a remote system to retrieve human-readable data about the versions of the various services.
In addition, there are WSDL and documentation responses.
What I am looking for is what is the standard that I need to adhere to for the public addresses of these services?
Currently, the IIS server is set to ...
^/(authentication|supply_?data|versions)(\?(wsdl|doc))?$ /ServiceManager.php?service=\1&\3 [NC]
In my code, I use ...
$this->s_Service = ucfirst(strtolower($_GET['service']));
to identify the specific service that has been requested.
The ServiceManager script is essentially a SOAP Proxy. It collects and examines the request to determine what version is required (our services require a version block (all services) and an authentication block (all except the Authentication service)). Once the service has been correctly identified, it passes everything on to a normal Zend_Soap_Service class as if it was the primary handler. Works very nicely.
So, I'm fine on _my_ side, but I don't know what format the URLs _SHOULD_ be on the public side.
Any suggestions would be appreciated.