validate query parameters

we should return a 4xx error when the client send an invalid query parameter (e.g. GET /test?bad=parameter)