Just wanted to give a huge shout-out to PostgREST:

https://postgrest.com

https://github.com/begriffs/postgrest

You can get many of the benefits of GraphQL using postgrest's resource embedding:

https://postgrest.com/en/v4.1/api.html#resource-embedding

We're using it in production.

PS: To be clear, you can't expose it directly to your users. We wrap it in a proxy service that provides authentication and authorization, and parses and transforms the users' URL queries destined for PostgREST. We also apply some transformations to the data coming back from PostgREST, such as encoding our internal UUIDs. It may sound complicated, but it's actually only about 200 lines of Erlang.

i don't understand how one would use this? obviously you're not just exposing this api to users right? are you just using it as a substitute for an orm or data access layer in your own app?

I bet they ar doing exactly that, exposing the api supported by PostgREST :)

https://github.com/subzerocloud/postgrest-starter-kit/wiki/P...

Edit: seems they are not, ... oh well :)

business logic in sql seems like a bad idea (especially since you can't connect it to other services? or can you make ajax requests in sql?).

you can if you really want to, but you are not supposed to. this tool gives you a way to talk to your database, not other systems. to talk to 3rd party systems you use other components in the stack (openresty/rabbitmq) https://github.com/subzerocloud/postgrest-starter-kit