lcu-driver icon indicating copy to clipboard operation
lcu-driver copied to clipboard

connection.request auto json encode

Open Bloodiko opened this issue 1 year ago • 2 comments

The auto json encode on the ["data"] field is not a good idea, as "data" is usually supposed to be the body. If you have a JSON body, you should send the "json" parameter instead of data, as they are mutually exclusive.

Excerpt from aiohttp doc

json – Any json compatible python object (optional). json and data parameters could not be used at the same time.

you dont even need to parse the data field into json, as aiohttp will do it for you.

As some of the lcu-api functions require plain-text / form encoded data, the data field should be passed along and not parsed.

Suggestion

Remove 'data'-autoparsing on the request and adjust the pydoc to the following.

Send JSON body data via the **json** keyword argument. The **data** keyword can be used for form based data. 
Both keywords (json and data) are mutually exclusive. Make sure to only send one.

Bloodiko avatar Dec 30 '23 15:12 Bloodiko

Woah that's a smarter way to do it, thanks for pointing it out. I'll now add json as an alias for data, and later, on a major version release, I'll cast the lcu-driver data to aiohttp data without the encoding. Sounds good?

sousa-andre avatar Dec 31 '23 12:12 sousa-andre

Yep sounds good

Bloodiko avatar Dec 31 '23 17:12 Bloodiko