Building on the NuSOAP Server
The NuSOAP server consists of a function that will take an ID and a name/phrase and inserts that into the Shakespeare quote. The function returns a semi-complex type which consists of 2 array elements, a status message and the phrase. However, the webservice needs to expand, add a new function, and make error messages dynamic. So the first thing we will tackle is getting the status message into a more dynamic format.
First, plan it out, always plan it out. The status message will need to accept an “error code”, a string for the struct name, and a variable for a custom message if it does fit in within the specified error codes. Now, just as a disclaimer here, this is just an example of how it can be planned. Some services may not need this extent, some may need a lot more. Remember that it needs to be able to handle the requirements of your application.
With that planned out, here is a possible solution to the function.
function error($err, $struct = 'phrase', $message = ''){ $error['status']['status']='error'; $error[$struct]= ''; switch ($err) { case "empty": $error['status']['message']='There was nothing passed to the webservice, so nothing can be returned.'; break; case "partial": $error['status']['message']="Not all required parameters were passed, so the webservice can not return any information."; break; case "not_found": $error['status']['message']='The parameter you passed was not found, please try again.'; break; case "bounds": $error['status']['message']='The ID that was passed is out of the allowable boundaires. Please try your request again.'; break; case "less_than_zero": $error['status']['message']='The number recieved is less than zero, and will not work with this service. Please double check the number and try again.'; break; case 'custom': $error['status']['message'] = $message; break; default: $error['status']['message'] = 'There was a problem with your request, please try again.'; break; } return $error; }