I was developing a RESTful API. When done with the basic select/insert/update, I needed to implement endpoints for batch queries. All of a sudden, I was like, how do I pass in the list of ids? Is there some standards out there?
I was thinking of using POST. That was how I did it back then, simple and easy. But with the REST philosophy, or the http way of things, I wanted to stick with GET.
So… how do I pass in a list of ids? I can use the query string, but there is a limit to the query string or uri. Not small, but not big either.
How to represent the params in the query string for, say a list of ids? Turns out the “right” way is: http://our.api.com/Product?id=101404&id=7267261
The URI gets a bit too long… hard to debug. So… can I send a GET request with a body? Turns out it is possible. My flask app seems to like it, though I had a hard time making that happen with AWS API Gateway and Lambda.
I did some more searches related to using GET with body. It turns out there is a split in opinions. Technically it’s doable, but that’s not what people expect things to work.
For now I take the easy way to use POST with body for multiple params request (possibly a list of 10,000 ids). Sorry to REST that I failed the test.