emissary-ingress / emissary

open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
https://www.getambassador.io
Apache License 2.0
4.37k stars 687 forks source link

Ambassador manipulates/changes json data types when forwarding to pods #3161

Open deepakkhedkar1994 opened 3 years ago

deepakkhedkar1994 commented 3 years ago

Describe the bug when ambassador api gateway forwards json body to pods , it manipulates/ changes json data types .

To Reproduce Steps to reproduce the behavior: when following request is made to eks with ambassador as gateway curl --request POST 'http://localhost:9000/predict' --header 'Content-Type: application/json' --data-raw '{"data":{"ndarray":[{**, "bbch": 10, ****}]}}'

when this body reaches to pods it is converted to following '{"data":{"ndarray":[{**, "bbch": 10.0, ****}]}}'

basically int is converted to float in json body.

Expected behavior data type manipulation should not happen.

Versions (please complete the following information):

additional info : NOTE : i am very new to ambassador and seldon . please ask for more details if needed and please provide relevant commands to produce that details if necessary.

mlushpenko commented 3 years ago

not sure if it's related, but in my case, POST requests body data is dropped completely. Post requests were working fine before I've added a payload. And if I make requests via port-forwarding to a service, it works as expected. Also, I can see request body in dev tools, but my backend reports empty form data when request comes via ambassador (installed via helm chart version 6.6.2)