Webservice args types automatic validation
Although it appears Services doesn't validate the incoming data based on the type, you can use an access callback to build your own validation.

Add something like this to your Service Resource definition:

// ...
'access callback' =&gt; '_example_resource_access',
'access callback file' =&gt; array(
  'type' =&gt; 'inc',
  'module' =&gt; 'example',
  'name' =&gt; 'example.resource-access',
),
'access arguments' =&gt; array('foo bar'),
'access arguments append' =&gt; TRUE,
// ...


Then create a file called example.resource-access.inc with a function like this:

function _example_resource_access($op, $args = array()) {    
  if ($op == 'foo bar' &amp;&amp; !is_numeric($args[0])) {
    return services_error(t('That is not an integer.'), 406);
  }    
  return TRUE;    
}


Note, $args[0] will likely come in as a string representing an integer, so using is_numeric() should be accurate, unless you specifically use (int) to cast $args[0] beforehand, then you can run it through is_int() for validation instead.