> Instead, use GraphQL with something like Hasura that generates the GraphQL service for you based on database schema.
I generally disagree. While Hasura and the like can get you moving quickly, they let you cheat on designing your data model.
Ideally it’s a collaboration between all involved to develop a shared understanding of the domain, and the queries and mutations (how to read and write).
Where possible avoiding implementation details leaking into the schema will let you change those implementation details when needed.
If you auto-generate from a database, your database itself becomes your schema. This is rarely the best way to represent your data model in an API.
I generally disagree. While Hasura and the like can get you moving quickly, they let you cheat on designing your data model.
Ideally it’s a collaboration between all involved to develop a shared understanding of the domain, and the queries and mutations (how to read and write).
Where possible avoiding implementation details leaking into the schema will let you change those implementation details when needed.
If you auto-generate from a database, your database itself becomes your schema. This is rarely the best way to represent your data model in an API.