GraphQL is quickly replacing REST as the preferred design pattern for APIs, and for good reason. Working with a GraphQL endpoint is a joy: you can request only what you need, data is served back just as you asked for it, and you can consolidate what used to be multiple trips to the backend into a single HTTP request. Gone are the days of dozens of endpoints that each perform slightly different tasks.
But what’s the catch?
As with all good things, there’s a catch. Unless you are working with an out-of-the-box GraphQL API from a third party or an API provided by your database management system, such as MongoDB Realm, setting up your GraphQL endpoint can be extremely cumbersome, time consuming, and prone to human error.
Anyone who has set up a GraphQL endpoint before has likely experienced misspelling a field in a type definition only to get null responses from your queries and have no idea what went wrong. Whether that situation resonates with you or not, giraffeql.io is here to help.
GiraffeQL is a relational database design and GraphQL schema configuration tool that can be plugged in throughout the development process of a GraphQL endpoint. Already have a PostgreSQL DB from an existing application? Simply enter your connection URI and giraffeQL will display an interactive visualization of your tables and their relationships. Starting from scratch? Use giraffeQL’s GUI to create tables and columns, select data types, establish table relationships and see your Apollo GraphQL schema code generated.
Planning to add additional database connections to your GraphQL endpoint? Use the GUI to add additional tables to your canvas and set any foreign key / primary key relationship between tables.
If the database mapping algorithm missed anything, you can edit column names, primary key restraints, or table to table relationships
Alternatively, if you’re building an application from scratch, you can start with a blank canvas and map out your DB schema. If you’re logged in, any edits you make will be saved automatically and can be accessed on the diagrams page.
Finally, export the code, fill in the resolvers with your preferred database interactions and get querying.
GiraffeQL is an end to end SQL database + GraphQL backend design solution. It takes a developer from relational DB design to GraphQL schema configuration and handles much of the boilerplate code of your behalf. It is currently in an early prerelease stage so comments, suggestions and PRs are appreciated!