I'm trying to test a Rest backend function that consumes a JSON object. The backend code is written in Python. I've tried several iterations when typing the URL in my browser during testing, but, I typically get a 400 error which leads me to think that I'm not formatting the URL correctly. For example, I've tried:
https://mybackend.url/?id=dev®="{ \"key\": \"some key\" }"
And other incantations. I feel like I'm not escaping the string correctly.
How can I type a Rest URL that passes a JSON object as a parameter?
Answer
You could either URL encode it e.g.,%7B%22key%22%3A%22some%20key%22%7D
— https://mybackend.url/?id=dev®=%7B%22key%22%3A%22some%20key%22%7D
Or better base64 encode it from the client e.g., https://mybackend.url/?id=dev®=eyJrZXkiOiAic29tZSBrZXkifQ==
In both cases, you will have to decode the encoding in your python server. Unfortunately, browsers don’t automatically encode complex strings like JSON in query parameters.