One of the decisions we have to make when designing our ScriptLink solutions is “how many endpoints (web services) do we want to support?” If we do one endpoint per action then we can end up with dozens if not hundreds of different WSDLs to import and manage. A centralized “controller” means one endpoint to send every request through.
I recommend the latter design if for only one reason. One endpoint makes it easier to redirect your testing myAvatar server (“UAT”) to your testing ScriptLink endpoint. This is especially important after your routine LIVE-to-UAT copy. This means one WSDL to import. It also means there’s a higher likelihood of creating and maintaining a test ScriptLink server avoiding testing in production.
For this design to work we need a way to modify the behavior of our endpoint based on the specific request. Responding “Hello, World!” will be of little use on most forms. Last week, we created a command to run when the API is called. Today, we are going to create a command selector that choose which command to run based on the parameter provided.