lura icon indicating copy to clipboard operation
lura copied to clipboard

Rest to graphql doesn't honor the variables datatype of graphql schema

Open codifierr opened this issue 2 years ago • 2 comments

Describe the bug I was trying krakend Rest API call to Graphql and passing query params like below. http://localhost:8085/test?foo=test&offset=1&limit=10 here test param is of string type but the offset and the limit are of integer type. In my Graphql Schema, I have mentioned offset as int and limit as int. But Krakend always sends all the param as strings to the graphql request variable and sends the request upstream. Which fails as the data is incorrect.

To Reproduce Steps to reproduce the behavior:

  1. Send integer param in the query param and see the result in the graphql request. it sends them as string.
  2. Send params in the body and see the result in the graphql request. it sends them as string.

Expected behavior Ideally while mapping query or path param to the variable of graphql query it should convert or keep the datatype mentioned as the graphql schema. An option to provide the datatype of query param in config can also work.

Thanks in advance.

codifierr avatar Sep 20 '22 08:09 codifierr

Hello @codifierr, thanks for spending the time to report this issue.

When working with URLs, query strings do not have type. Even that you can treat ?param=1 in your backend as an integer, a string, or even a boolean, these are just human assumptions, as the type is not implicit anywhere.

Considering that Lura does not know the schema at all, I am not classifying this issue as a bug (but a feature request)

alombarte avatar Sep 20 '22 15:09 alombarte

Hi @alombarte, Thanks for acknowledging this as a feature request.

codifierr avatar Sep 20 '22 16:09 codifierr