revoltchat / api

Typescript typings and OpenAPI v3 generator for the Revolt API.
https://developers.revolt.chat/api/
MIT License
36 stars 25 forks source link

feature request: Make GET channels/{target}/messages use request body instead of query parameters #28

Open QuantumToasted opened 1 year ago

QuantumToasted commented 1 year ago

What do you want to see?

At the moment, Search for Messages (POST channels/{target}/search) utilizes nearly identical parameters to Fetch Messages (GET channels/{target}/messages), but the former uses a JSON request body whereas the latter uses query parameters, which in my personal opinion is a worse way to build requests especially with as many parameters as the methods allow.

Would it be possible to make both endpoints use the same request body type (specifically a JSON request body instead of query parameters) for consistency? This would obviously be a breaking change for clients and API wrappers which depend on this functionality, but I think it would be better to get that over with sooner rather than later.

QuantumToasted commented 1 year ago

I've just remembered that the reason Fetch Messages uses query parameters is that GET methods cannot have a body, which is obviously something that has to be worked around and explains the usage of query parameters.

Might I instead propose a sort of "merging" of the two endpoints into one single Search for Messages endpoint with an optional query field on the object which determines whether to do a normal fetch versus an actual search?