Strawberry Django Plus

screenshot of Strawberry Django Plus
django

Enhanced Strawberry GraphQL integration with Django

Overview

Strawberry-Django-Plus is an enhanced integration of the Strawberry GraphQL library with Django, designed to elevate the efficiency of your projects. While it's important to note that this library has been deprecated in favor of the official Strawberry GraphQL Django integration, many of the impressive features that made it stand out are now part of that core library. For those who previously used Strawberry-Django-Plus, a migration guide is available to help transition to the official version seamlessly.

This library once served as a powerful tool for developers looking to leverage the potential of GraphQL within Django applications, promising better functionality and ease of use. Its rich set of features contributed significantly to solving common issues developers face while working with GraphQL and Django.

Features

  • Comprehensive Support: Offers all features supported by Strawberry and Strawberry-Django, complete with thorough typing and documentation for easier implementation.

  • Query Optimizer Extension: Automatically enhances querysets to tackle GraphQL N+1 issues, utilizing techniques such as only, select_related, and prefetch_related, with added support for fragment spread and inline fragments.

  • Django Choices Enums: Allows for better typing of enumeration types using Django choices enums, which requires the django-choices-field package.

  • Permissioned Resolvers: Implements schema directives that work in harmony with Django’s authentication system, enabling both direct and per-object permission checks.

  • CRUD Mutations for Django: Provides full support for Create, Read, Update, and Delete operations with automatic error validation, making it easier to handle data mutations.

  • Relay Support: Fully integrated support for Relay queries, connections, and input mutations, utilizing Strawberry's official relay integration.

  • Django Debug Toolbar Integration: Connects with the Django Debug Toolbar to present valuable metrics like SQL queries directly within the GraphiQL interface.

  • Improved Resolver Efficiency: Sync/async resolver optimizations prioritize model cache usage, reducing the need for sync_to_async calls when not necessary.

django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.

graphql
Graphql

A website that uses GraphQL as a query language to manage data fetching and state management. This includes features such as a strongly typed schema, client-side caching, and declarative data fetching to streamline data management and optimize website performance.