michaelmior 5 years ago

This is cool, although these days, (if requirements permit), my choice would be GraphQL via something like PostGraphile.

https://github.com/graphile/postgraphile

  • cpursley 5 years ago

    https://github.com/PostgREST/postgrest (Haskell) is an order of magnitude more performant than postgraphile (Node ~ aka wet noodles).

    • BenjieGillam 5 years ago

      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.

    • Dansvidania 5 years ago

      came here to suggest the same thing :) I have been using this project and contributing to it recently and it is really great.

      It has been months, and I keep discovering possibilities and functionality :)

    • sbr464 5 years ago

      Wet noodles?

  • appwiz 5 years ago

    Mind if I ask the reason why you’d pick GraphQL as the default API technology?

    • gremlinsinc 5 years ago

      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.

      • appwiz 5 years ago

        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?

  • markhalonen 5 years ago

    I've been using this tool on a project for a couple months. It's been fantastic, I spend all my time on the frontend!

  • alfonsodev 5 years ago

    what are your thoughts about AWS AppSync ?

  • _c6yb 5 years ago

    thanks for mentioning this library - looks great, I will have to try it out !

  • someguy1010 5 years ago

    this just saved me a bunch of time thanks!