We did that, due to a lack or experience with graphQL. We use Postgres as a transactional key-value store (with proper schema though). We implemented the filtering as simple params to the API, not as flexible as graphQL but it is straightforward to implement on the backend side. I am not sure what is the meaning of inconsistent API though.
http://postgrest.com/en/v0.4/