mulesoft-labs / osprey-method-handler

Middleware for validating requests and responses based on a RAML method object
Other
16 stars 16 forks source link

ospreyMethodHandler does not handle request.queryString #68

Open trev-gulls opened 3 years ago

trev-gulls commented 3 years ago

RAML 1.0 and AML-AMF WebApi allow query string parameters to be defined as either queryParameters xor queryString.

RAML 1.0 defines queryParameters as a properties declaration list and queryString as a type or type expression. https://nicedoc.io/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md#query-strings-and-query-parameters

AML AMF WebApi models a request with properties queryParameters: Parameter[] and queryString: Shape. https://github.com/aml-org/amf/blob/develop/documentation/model.md#request

webapi-parser.Operation.Request has properties queryParameters: Parameter[] and queryString: Shape. https://github.com/raml-org/webapi-parser/blob/494156d904f813cc5edfa6215b0a265e7589d9c5/js/module/typings/amf-client-js.d.ts#L1333-L1343

ospreyMethodHandler does not handle method.request.queryString. This can cause all query string parameters to be discarded if the original RAML used the queryString node. https://github.com/mulesoft-labs/osprey-method-handler/blob/c938df235cbeda00a023f291ea58037b825e912c/osprey-method-handler.js#L116-L129