Здесь у вас есть два варианта - либо определить параметры в UriTemplate операции как переменные запроса (а не path переменные), либо, если это не операция GET, вы можете позволить операционному органу получать их.
Дело 1:
[WebGet(UriTemplate="/GetData?x={x}&y={y}&z={optional1}&w={optional2}")]
string GetData(int x, int y, string optional1, string optional2);
Случай 2:
[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
string DoSomething(int x, int y, string optional1, string optional2);