Skip to main content

Apollo-compatible persisted queries for Strawberry

Project description

🍓Strawberry Persisted Queries

PyPI GitHub Sponsors

Apollo-compatible persisted queries for Strawberry.

Usage

Add PersistedQueriesExtension() to your extensions.

import strawberry
from strawberry_persisted_queries import PersistedQueriesExtension

schema = strawberry.Schema(
    query=Query,
    extensions=[
        PersistedQueriesExtension(),
    ],
)

Django

For Django users, a Django cache backend is available. This uses the default cache set in Django.

from strawberry_persisted_queries.django_cache import DjangoPersistedQueryCache

PersistedQueriesExtension(cache_backend=DjangoPersistedQueryCache())

Safelisted Queries

DictSafelist can be used to require persisted queries to already be saved. This can be used with a build tool to ensure only queries used within an app are available.

from strawberry_persisted_queries.safelisting import DictSafelist

PersistedQueriesExtension(safelist=DictSafelist({
    'sha256Hash': 'query {...}',
}))

Custom Cache Backends

Custom cache backends allow using another cache for persisted queries, such as memcached or a database. Custom cache backends can inherit from strawberry_persisted_queries.PersistedQueryCache.

from strawberry_persisted_queries.cache import PersistedQueryCache

class MyCache(PersistedQueryCache):
    def get(self, query_hash):
        return cache.get(query_hash)

    def set(self, query_hash, value):
        cache.set(query_hash, value)

PersistedQueriesExtension(cache_backend=MyCache())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strawberry_persisted_queries-1.1.0.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page