I've been reading up on Moodle web services and have a quick question about them...
external_api does provide a function validate_parameters. This gets called before executing the web service function (https://github.com/moodle/moodle/blob/c55402486bfefe81a1c102f36158de17e1dacd12/webservice/lib.php#L1423) and provides the function with easier to use parameters.
But then, most (if not all) core web service functions seem to do this again. For example, core course webservices do this (https://github.com/moodle/moodle/blob/c55402486bfefe81a1c102f36158de17e1dacd12/course/externallib.php#L92-L93).
Is there any reason that a webservice function has to do this again?