Skip to main content

Frequently Asked Questions

What is the main purpose of Graphitron?

The main goal of Graphitron is to automate repetitive patterns in API development, particularly creating resolvers for GraphQL APIs. It generates code based on GraphQL schemas tied to database models using GraphQL directives.

How does Graphitron work?

Graphitron operates through a code generation process:

  1. Input:
    • GraphQL schema(s) with special directives that map to your database structure
    • jOOQ-generated classes representing your database schema
  2. Processing: Analyzes the schema and the database class representation to understand the relationships between GraphQL types and database tables
  3. Output: Generates Java code that implements:
    • GraphQL resolvers that handle queries and mutations
      • Efficient database access using jOOQ

Under the hood, Graphitron uses:

  • graphql-java for the GraphQL implementation
  • jOOQ for type-safe SQL generation and database interaction

This approach eliminates the need to write repetitive resolver code while maintaining type safety and query efficiency.

Is Graphitron free to use?

Yes! We have open-sourced the tool so that you can benefit from it as well.

What are the key advantages of using Graphitron?

Graphitron enhances code quality and maintainability by:

  • Automating repetitive patterns
  • Reducing code duplication
  • Minimizing errors
  • Ensuring long-term stability
  • Providing scalability for managing large GraphQL APIs efficiently

Has Graphitron been used in production?

Yes! Graphitron was initially made for creating and maintaining the FS GraphQL API, a core component in the Norwegian Student information system (SIS). You can explore the API in Voyager here.

Where can I find documentation?

For detailed documentation, please refer to the Graphitron GitHub repository.

How can I contribute?

We welcome contributions to Graphitron! You can help us develop the tool further by visiting our GitHub repository.

Where can I get support?

If you have questions or need assistance, please create an issue in our GitHub repository.