We are doing a RESTful service that is non-public. For a request that is read-only and potentially uses 20+ parameters, we are planning to implement it as a GET request that will pass these parameters in the body.
I have seen the well known announcement by Dropbox in 2015: https://blogs.dropbox.com/developers/2015/03/limitations-of-the-get-method-in-http/ and the response in Hacker News: https://news.ycombinator.com/item?id=9133469
As I understand it, there are three potential issues with a GET with request body:
(1) Not all servers will support this.
(2) Not all tools will support this (POSTMAN added support this year: https://github.com/postmanlabs/postman-app-support/issues/131)
(3) There is not yet a consensus on GET with request body. (For example, is Dropbox still using a POST)
I am not finding too many recent statements about this, I wanted to open up the question here and see what the current opinions are.
I heard that ElasticSearch is using GET request parameters in the body. It sounds like there are some who are against this approach:
https://stackoverflow.com/questions/36939748/elasticsearch-get-request-with-request-body
(1) Does this make sense for a private server? (The answer here seems to be yes -- unless I am missing something)
(2) Does this make sense in general? If the tools needed support it, what is wrong with implementing a RESTful service that requires GET request parameters in the body?
You can get some inspiration from GraphQL for your use case. All GraphQL queries are POST requests with body specifying what data the client needs.