I wouldn't let that sway you too much; the main reason for the performance difference is that PostgREST builds the JSON response in the database and then pipes that through to the user directly (at least that's my understanding). PostGraphile OTOH parses the JSON from the database and feeds it through the rest of your GraphQL schema, allowing data to be mixed in from your custom fields which might fetch from microservices or external services such as Stripe, or just perform additional calculations in application-land, and finally serialises the resulting data to send it to the end user. Despite this significantly greater flexibility and power requiring all this additional work, PostGraphile achieves very solid performance.
I'd pick graphql ((I'm currently Using Hasura) because you can combine api's local and remote into one. You can also only ever worry about one endpoint and there are a lot of tools to create all the graphQL straight from the db : Postgraphile / Hasura are two that come to mind. Prisma is a little different but makes graphql easier.
Rest you have way more code to worry about, way more end points, you always have to figure which endpoint to send stuff too, and you usually have no control over how much data you're going to get back.. if you get back fifty fields, but only needed the email that's a lot of data that could interfere with performance.
Yep, I’m familiar with the benefits of GraphQL (I built AWS AppSync and AWS Amplify). I’m interpreting from your response that the codegen and tooling for GraphQL saves a lot of time to create the usual API cruft and that’s why you prefer it. Is my understanding correct?
https://github.com/graphile/postgraphile